2013-05-16 2 views
0

У меня есть следующий для извлечения данных из андроиды базы данных SQLiteAndroid - SQLite запрос как MySQL

своей функции в андроиде

public List<String> getMyDetails() 
    { 
      List<String> dataList = new ArrayList<String>(); 
    Cursor cursor = myDataBase.rawQuery("SELECT * FROM pic_details WHERE _id=1",null); 

if (cursor .moveToFirst()) { 

     do { 
       String name = cursor.getString(cursor.getColumnIndex("name")); 
       dataList.add(name); 
     } while (cursor.moveToNext()); 
    } 

return dataList; 

} 

В деятельности вызова, как это

List<String> piclist= dbHelper. getMyDetails(); 

Его возвращая имя кандидата. Но я хочу, чтобы вернуть весь столбец таблицы что-то вроде этого в PHP, MySQL

$sql=mysql_query("SELECT * FROM pic_details WHERE _id=1"); 
$i=0; 
$out=array(); 

while($t=mysql_fetch_array($sql)){ 

$out[$i]['name']=$t['name']; 
$out[$i]['file']=$t['file']; 
$out[$i]['age']=$t['age']; 
$out[$i]['date_time']=$t['date_time']; 

$i++; 
} 

return $out; 

Так что я могу принести $ в соответствии с моим необходимым.

Может ли кто-нибудь мне помочь? Заранее спасибо

ответ

2

Как предусмотрено в php code в вашем вопросе, это не единственный column. Это row data. Итак, в основном вы хотите получить всю информацию о строках. Чтобы получить всю информацию о строках, вам нужно сделать что-то вроде этого.

String name = cursor.getString(cursor.getColumnIndex("name")); 
String address = cursor.getString(cursor.getColumnIndex("address")); 

Таким образом, generic будет:

datatype fetchedData = cursor.getterofthatparticulardatatype(cursor.getColumnIndex(columnName)); 

Edit:

Либо использовать POJO class в качестве другого отвечающего сказал или это:

public List<HashMap<String, String>> getMyDetails() 
    { 

List<HashMap<String, String>> datalist = new ArrayList<HashMap<String, String>>(); 

    Cursor cursor = myDataBase.rawQuery("SELECT * FROM pic_details WHERE _id=1",null); 

if (cursor.moveToFirst()) { 

     do { 
       HashMap<String, String> hashmap = new HashMap<String, String>(); 

       String name = cursor.getString(cursor.getColumnIndex("name")); 
       String story = cursor.getString(cursor.getColumnIndex("story")); 

       hashmap.put("nameKey",name); 
       hashmap.put("storyKey",story); 

       dataList.add(hashmap); 
     } while (cursor.moveToNext()); 
    } 

return dataList; 

} 

Путь ты хочешь ld retrieve:

List<HashMap<String, String>> piclist= dbHelper. getMyDetails(); 

for(HashMap hashmap : piclist) 
{ 
     String name = hashmap.get("nameKey"); 
     String story = hashmap.get("storyKey"); 
     Log.d("name,story",name+", "+story); 
} 
0

Сначала вы создаете класс Java.

public class Person { 
    private String image; 
    private String name; 

    public Person(String image, String name) { 
     super(); 
     this.image = image; 
     this.name = name; 

    } 

    public String getImage() { 
     return image; 
    } 

    public void setImage(String image) { 
     this.image = image; 
    } 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 
} 

Then create ArrayList of person class 

Public List<Person> getMyDetails() 
    { 
      List<Person> dataList = new ArrayList<Person>(); 

    Cursor cursor = myDataBase.rawQuery("SELECT * FROM pic_details WHERE _id=1",null); 

if (cursor .moveToFirst()) { 

     do { 
       String name = cursor.getString(cursor.getColumnIndex("name")); 
       person = new Person(image, name) 
       dataList.add(person); 
     } while (cursor.moveToNext()); 
    } 

return dataList; 

} 

Then use this arraylist in you activity class. 
Смежные вопросы