Android如何查询数据库中全部数据 (android 查询数据库全部几率)
在Android开发中,数据库是一个不可或缺的组件,它可以提供数据的储存和查询功能。在进行查询操作时,我们可能需要查询数据库中的全部数据,本文将介绍如何在Android中查询数据库中的全部数据。
一、创建数据库
在进行查询操作之前,首先需要创建一个数据库。代码如下:
“`
private static final String DB_NAME = “mydb.db”;
private static final int DB_VERSION = 1;
private static final String CREATE_TABLE_SQL =
“CREATE TABLE books (id INTEGER PRIMARY KEY, name TEXT, author TEXT)”;
private SQLiteDatabase mDB;
public DBHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_TABLE_SQL);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL(“DROP TABLE IF EXISTS books”);
onCreate(db);
}
public void open() throws SQLException {
mDB = getWritableDatabase();
}
public void close() {
if (mDB != null) {
mDB.close();
}
}
“`
以上代码创建了一个名为“mydb.db”的数据库,并在其中创建了一个名为“books”的表。这个表包含三个列:id、name和author。在实际开发中,可以根据需求修改和添加列。
二、向数据库中插入数据
在进行查询操作之前,需要向数据库中插入一些数据。代码如下:
“`
public void insertData() {
ContentValues cv = new ContentValues();
cv.put(“name”, “Android开发艺术探索”);
cv.put(“author”, “任玉刚”);
mDB.insert(“books”, null, cv);
cv.clear();
cv.put(“name”, “Java并发编程实战”);
cv.put(“author”, “Brian Goetz”);
mDB.insert(“books”, null, cv);
cv.clear();
cv.put(“name”, “深入浅出MySQL”);
cv.put(“author”, “范长江”);
mDB.insert(“books”, null, cv);
cv.clear();
cv.put(“name”, “C++ Primer”);
cv.put(“author”, “Lippman”);
mDB.insert(“books”, null, cv);
cv.clear();
cv.put(“name”, “计算机组成原理”);
cv.put(“author”, “唐朔飞”);
mDB.insert(“books”, null, cv);
}
“`
以上代码向“books”表中插入了五条记录。
三、查询数据库中全部数据
1. 使用rawQuery方法
使用SQL查询语句可以查询数据库中的全部数据。该方法返回一个游标对象,可以通过游标对象遍历查询结果。代码如下:
“`
public List getAllBooks() {
List books = new ArrayList();
Cursor cursor = mDB.rawQuery(“SELECT * FROM books”, null);
if (cursor != null && cursor.moveToFirst()) {
do {
Book book = new Book();
book.setId(cursor.getInt(cursor.getColumnIndex(“id”)));
book.setName(cursor.getString(cursor.getColumnIndex(“name”)));
book.setAuthor(cursor.getString(cursor.getColumnIndex(“author”)));
books.add(book);
} while (cursor.moveToNext());
cursor.close();
}
return books;
}
“`
以上代码定义了一个getAllBooks方法,该方法使用rawQuery查询语句查询“books”表中所有数据,并返回一个包含Book对象的List。在while循环中,将游标对象中的数据封装成一个Book对象,并添加到List中。
2. 使用query方法
另一种查询方式是使用query方法。该方法的参数较多,需要指定需要查询的表名和查询的列名等信息。代码如下:
“`
public List getAllBooks() {
List books = new ArrayList();
String[] columns = {“id”, “name”, “author”};
Cursor cursor = mDB.query(“books”, columns, null, null, null, null, null);
if (cursor != null && cursor.moveToFirst()) {
do {
Book book = new Book();
book.setId(cursor.getInt(cursor.getColumnIndex(“id”)));
book.setName(cursor.getString(cursor.getColumnIndex(“name”)));
book.setAuthor(cursor.getString(cursor.getColumnIndex(“author”)));
books.add(book);
} while (cursor.moveToNext());
cursor.close();
}
return books;
}
“`
以上代码与“使用rawQuery方法”中的代码类似,唯一不同的是使用了query方法查询数据。
四、