열 이름을 키로 사용하여 행을 읽으려고하지만 어떻게 든 가져올 수 없습니다.SQLite 데이터베이스에서 데이터를 읽으려면 어떻게해야합니까?
예 나는
여기 내 삽입 코드
public void insertStudent(String name, int faculty){
ContentValues cv = new ContentValues();
cv.put("name", name);
cv.put("faculty", faculty);
mSqliteDatabase.insert("students", null, cv);
}
입니다 그리고 여기가 데이터를 조회하는 방법은 ListView에있는 문자열 "이름"
이목록이 그냥 "1"이 표시를 입력 :
public List<String> selectAllEngg(){
List<String> allStudents = new ArrayList<>();
Cursor cursor = mSqliteDatabase.query("students", new String[]{"faculty"}, null, null, null, null, null);
if(cursor != null && cursor.moveToFirst()){
do {
allStudents.add(cursor.getString(0));
} while (cursor.moveToNext());
}
return allStudents;
}
package test;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import java.util.ArrayList;
import java.util.List;
public class MyDBAdapter {
public static final String DATABASE_NAME = "data";
private Context mContext;
private MyDBHelper mDbHelper;
private SQLiteDatabase mSqliteDatabase;
private int DATABASE_VERSION = 1;
public MyDBAdapter(Context context){
this.mContext = context;
mDbHelper = new MyDBHelper(context, DATABASE_NAME, null, DATABASE_VERSION);
}
public void open(){
mSqliteDatabase = mDbHelper.getWritableDatabase();
}
public class MyDBHelper extends SQLiteOpenHelper{
public MyDBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version){
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db){
String query = "CREATE TABLE students(id integer primary key autoincrement, name text, faculty integer);";
db.execSQL(query);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){
String query = "DROP TABLE IF EXISTS students;";
db.execSQL(query);
onCreate(db);
}
}
public void insertStudent(String name, int faculty){
ContentValues cv = new ContentValues();
cv.put("name", name);
cv.put("faculty", faculty);
mSqliteDatabase.insert("students", null, cv);
}
// public List<String> selectAllStudents(){
// List<String> allStudents = new ArrayList<>();
// Cursor cursor = mSqliteDatabase.query("students", null, null, null, null, null, null);
// if(cursor != null && cursor.moveToFirst()){
// do {
// allStudents.add(cursor.getString(1));
// } while (cursor.moveToNext());
// }
// return allStudents;
// }
public List<String> selectAllEngg(){
List<String> allStudents = new ArrayList<>();
Cursor cursor = mSqliteDatabase.query("students", new String[]{"faculty"}, null, null, null, null, null);
if(cursor != null && cursor.moveToFirst()){
do {
if(cursor.getString(cursor.getColumnIndex("faculty")).equals("1")){
allStudents.add(cursor.getString(cursor.getColumnIndex("name")));
}
// allStudents.add(cursor.getString(0));
} while (cursor.moveToNext());
}
return allStudents;
}
public void deleteAllEngineers(){
mSqliteDatabase.delete("students", null, null);
}
}
DB 자바 파일을 추가했습니다.
[안드로이드에서 sqlite 데이터베이스의 데이터를 검색하여 TextView에 표시하는 방법] (https://stackoverflow.com/questions/12298835/how-to-retrieve-data-from-sqlite-database-in) - android-and-display-it-in-textview) – imGs