一:新建一个类继承SQLiteOpenHelper
public class MyOpenHelper extends SQLiteOpenHelper {
/*
* 构造方法中
* 参数context表示用来打开或创建数据据的上下文;
* name指定了数据库文件;factory用来创建cursor对象,
* 如果使用默认的factory,则将该参数设置为null;
* version表示数据库的版本号,该版本号从1开始依次递增。
* */
public MyOpenHelper(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
/*
* 在派生的自类中需要重写onCreate()方法。
* 当数据库文件被首次创建时会调用该函数,
* 也就是在调用调用SQLiteOpenHelper类的getWritableDatabase()或者getReadableDatabase()时会调用该方法。
* 在该方法中主要完成数据库表的初始化(创建和记录的添加)。
* */
@Override
public void onCreate(SQLiteDatabase db) {
System.out.println(123456789);
}
/*
* 当数据库需要更新的时候调用该方法。可以通过该方法实现删除表、添加表或者更新表。
* */
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
System.out.println(123);
db.execSQL("CREATE table student(id Interger primary key autoincrement,name varchar(20),age int)");
}
}
二:在Activity中
MyOpenHelper myOpenHelper = new MyOpenHelper(getApplicationContext());
SQLiteDatabase writableDatabase = myOpenHelper.getWritableDatabase();
writableDatabase.execSQL();
writableDatabase.close();
2.2 创建记录
创建记录的方法与创建表的方法类似,首先构建SQL语句,之后执行该语句。
String insertSql = “insert into user(username, password) values(?,?)”;
DB.execSQL(insertSql, new String[]{“yang”, “123”});
以上代码的功能是在“user”表中插入了一个记录,该记录的username域的值是“yang”,“password”域的值是“123”。
2.3 删除记录
String deleteSql = “delete from user where username=?”;
DB.execSQL(deleteSql, new String[]{“yang”});
以上代码的作用是在user表中删除用户名为“yang”的记录。
2.4 修改记录
String updateSql = “update user set username=?,password=? where _id=?”;
DB.execSQL(updateSql, new String[]{“yang”, “456”, “0”});
以上代码的作用是将user表中ID为0的记录的”username”域的值设置为“yang”,“password”域得值设置为“456”。
2.5 查询记录
与以上操作记录使用的方法不同,查询记录时使用的是SQLiteDatabase类的rawQuery()方法。该方法的格式为
public Cursor rawQuery(String sql,
String[] selectionArgs)
其中,参数sql指定了查询记录的SQL语句;selectionArgs指定了sql中包含的?所代表的值,如果sql中不包含?,则该参数可以设置为null。rawQuery()方法的返回值是查询到的结果,其类型为Cursor。
String selectSql = “select _id, username, password from user”;
Cursor cursor = DB.rawQuery(selectSql, null);
以上代码的作用是查询表user中的所有记录,并将记录保存在cursor中。
2.6 关闭数据库
调用SQLiteDatabase类的close()方法关闭打开的数据库。
DB.close();