步骤:
1、创建SQLiteOpenHelper的子类 // 见DBHelper
2、子类的构造方法中,指定数据库名菜,
3、SQLiteOpenHelper 内部两个方法需要实现 onCreate, onUpgrade
4、主方法中调用DBHelper // DBHelper hepler = new DBHelper(this);
5、通过GetReadblerDatabase() getWritableDatabase() 获取数据库 database = helper.getWri...();
DBHelper中:
public class DBHelper extends SQLiteOpenHelper {
public DBHelper(Context context) {
// 参数1: Context上下文
// 参数2: 数据库的名称
// 参数3: 数据库查询时,对于记录的封装,通常为 null
// 参数4: 给数据库定义一个版本,设置的版本会保存在数据库文件中,
// 当代码中的版本升级了,系统会自动升级数据库。
super(context, "appdata.db", null, 2);
}
/**
* 作用:当第一个启动数据库,并且之前数据库没有创建
* Android系统会自动的创建,调用 onCreate方法,
* 来初始化数据库内部的表。
* @param db
*/
@Override
public void onCreate(SQLiteDatabase db) {
Log.d("SQLite", "数据库创建");
// SQLiteDatabase 可以执行 SQL 语句的操作,可以在
// 这个方法中创建数据库表
db.execSQL("create table users (id integer primary key autoincrement, name text not null, age integer )");
}
/**
* 更新数据库
* @param db SDLiteDatabase
* @param oldVersion 数据库当前的旧版
* @param newVersion 数据库需要升级的版本
*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.d("SQLite", "数据库升级 " + oldVersion + " " + newVersion);
}
}
Main中:
/**
* 打开/创建数据库的方法
* @param view
*/
public void btnOpenDb(View view) {
if(database == null) {
// 步骤
// 1. 创建SQLiteOpenHelper的子类
// 2. 子类中构造方法,指定数据库名称,数据库的版本
// 3. SQLiteOpenHelper 内部两个方法需要实现 onCreate, onUpgrade
DBHelper helper = new DBHelper(this);
// 4. 通过 getReadableDatabase()
// getWritableDatabase() 获取数据库
database = helper.getWritableDatabase();
}
}
/**
* 关闭数据库的方法
* @param view
*/
public void btnCloseDb(View view) {
if (database != null) {
database.close();
}
}
}
// 加载记录,显示,进行数据库的查询
// 参数1: 表名
// 参数2: 字符串数组 需要获取的列的内容,null 代表 *
// 参数3: where语句的条件部分, 条件部分内部数值都是直接写成"?" 由参数4 进行设置
// 参数4: 字符串数组,内容代表了 参数3中 每一个"?"要替换的值
// 参数5: group by 信息,指定按照哪一列进行内容的分组
// 参数6: having, 对应 group by 的设置
// 参数7: order by 排序信息,asc 升序,desc 降序
Cursor cursor = db.query(
"records",
null,
"record_type = ?", // record_type = ? and money >= ?
new String[]{"0"}, // 将 "0" 替换到 record_type = ? 形成实际内容
null, // group by
null, // having
"time desc" // order by -> "列名 排序方式"
);
// cursor 获取之后可以动态的设置到Adapter上面,更新结果
if (cursor != null) {
// 将Cursor设置个Adapter,自动刷新列表
adapter.swapCursor(cursor);
}
while cursor.moveToNext()
int columnIndex = cursor.getColumnIndex("列名");
int id = cursor.getInt(columnIndex);
以上注意加判断