android 连接数据库 进行查询
时间: 2024-05-13 13:19:31 浏览: 99
首先,你需要在你的 Android 项目中添加对应的数据库依赖库,比如 SQLite 或者 Room 等。
下面是一个使用 SQLite 数据库进行查询的简单示例,你可以根据自己的需求进行修改:
1. 定义一个 DBHelper 类,继承自 SQLiteOpenHelper:
```java
public class DBHelper extends SQLiteOpenHelper {
private static final String DB_NAME = "my_db";
private static final int DB_VERSION = 1;
public DBHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
// 创建表
db.execSQL("CREATE TABLE IF NOT EXISTS user (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// 升级表结构
db.execSQL("DROP TABLE IF EXISTS user");
onCreate(db);
}
}
```
2. 在需要进行查询的地方,创建一个 DBHelper 实例,获取可读数据库对象,进行查询:
```java
DBHelper dbHelper = new DBHelper(context);
SQLiteDatabase db = dbHelper.getReadableDatabase();
String[] columns = {"id", "name", "age"};
String selection = "age > ?";
String[] selectionArgs = {"20"};
String groupBy = null;
String having = null;
String orderBy = "age DESC";
String limit = null;
Cursor cursor = db.query("user", columns, selection, selectionArgs, groupBy, having, orderBy, limit);
while (cursor.moveToNext()) {
int id = cursor.getInt(cursor.getColumnIndex("id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
int age = cursor.getInt(cursor.getColumnIndex("age"));
// 处理查询结果
}
cursor.close();
db.close();
```
上述代码中,我们使用 `db.query()` 方法进行查询,其中各个参数的含义如下:
- 第一个参数是要查询的表名;
- 第二个参数是要查询的列名,如果要查询所有列,可以传入 `null`;
- 第三个参数是查询条件,可以写成类似 `age > ?` 的形式,表示查询年龄大于某个值的记录;
- 第四个参数是查询条件中的参数值,用于替换查询条件中的占位符 `?`;
- 第五个参数是分组条件;
- 第六个参数是筛选条件;
- 第七个参数是排序条件;
- 第八个参数是限制查询结果的行数。
查询结果返回一个 Cursor 对象,可以通过 `cursor.getColumnIndex()` 和 `cursor.getInt()` 等方法获取指定列的值。
最后,别忘了关闭 Cursor 和数据库对象。
阅读全文