一、声明一个类继承SQLiteOpenHelper
public class MySQLiteOpenHelper extends SQLiteOpenHelper {
public MySQLiteOpenHelper(Context context) {
//参数说明
//context 应用上下文 对象
//name 数据库名
//factory 游标 工厂 : Cursor---cursorFactory
//version: 版本, 数据库的版本
super(context, "student.db", null, 1);
}
public void onCreate(SQLiteDatabase db) {
//创建数据表
String sql = "create table student("
+ "_id integer primary key autoincrement,"
+ "name varchar(20),"
+ "schoolcard varchar(10),"
+ "sex varchar(6))";
db.execSQL(sql);
//释放资源
db.close();
}
//该方法在更新数据库表的时候使用
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
二、实现CURD操作
public class MyDao {
MySQLiteOpenHelper helper;
public MyDao(Context context){
helper = new MySQLiteOpenHelper(context);
}
public void insert(String name, String schoolcard, String sex){
//获取一个可写的数据库对象
SQLiteDatabase db = helper.getWritableDatabase();
//使用参数绑定的方式插入一条记录,需要传入一个Object对象数组
db.execSQL("insert into student values(null, ?, ?, ?)", new Object[]{name, schoolcard, sex});
db.close();
}
public void delete(String schoolcard){
SQLiteDatabase db = helper.getWritableDatabase();
db.execSQL("delete from student where schoolcard = ?", new Object[]{schoolcard});
db.close();
}
public void update(String name, String schoolcard, String sex){
SQLiteDatabase db = helper.getWritableDatabase();
db.execSQL("update student set name = ?, sex = ? where schoolcard = ?", new Object[]{name, sex, schoolcard});
db.close();
}
public String findOne(String schoolcard){
//获取一个可读的数据库对象
SQLiteDatabase db = helper.getReadableDatabase();
//使用参数绑定的方式执行查询操作,需要传入一个字符串数组,返回一个Cursor对象,默认指向第一条记录之前
Cursor cursor = db.rawQuery("select name, sex from student where schoolcard = ?", new String[]{schoolcard});
String name = null;
String sex = null;
//将Cursor指向下一条记录
if(cursor.moveToNext()){
//获取字段
name = cursor.getString(0);
sex = cursor.getString(1);
}
return name;
}
}
三、执行以上操作后,生成的数据库文件在/data/data/包名/databases/数据库名.db