ORMLite简介
//表明这是数据库中的一张表,表名是tb_user
@DatabaseTable(tableName = "tb_user")
public class User {
//表示id是主键且自动生成
@DatabaseField(generatedId = true)
private int id;
//columnName是该字段在数据中的列名
@DatabaseField(columnName = "name")
private String name;
@DatabaseField(columnName = "desc")
private String desc;
1 使用SQLiteOpenHelper对数据库进行版本管理
在编写数据应用软件时,如果应用使用到了SQLite数据库,我们必须必须在用户初次使用软件时创建出应用使用的数据库表结构及添加一些初始化记录。另外在软件升级时,也需要对数据库表结构进行更新,android为我们提供了一个名为SQLiteOpenHelper的抽象类来对数据库版本进行管理。
SQLiteOpenHelper提供了onCreate(SQLiteDatabase db)和onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)两个方法来对数据库版本进行管理,前者用于初次使用软件时生成数据库表,后者用于升级软件时更新数据库表结构。getWriteableDatabase()和getReadableDatabase()用于获取数据库中的SQLiteDatabase实例,如果数据库不存在,android会自动生成一个数据库,当存储磁盘存满时,getWriteableDatabase()获取SQLiteDataBase实例会报错,getReadableDataBase()会在报错以后以只读方式打开一个SQLiteDataBase实例。接着调用onCreate()方法,onCreate()方法在初次生成数据库时才会被调用,在onCreate()方法中可以生成数据库表结构以及添加一些应用使用到的初始化数据。
onUpgrade()方法在数据库版本发生改变时会被调用,一般软件升级时才需要改变版本号,而数据库的版本是由程序员控制的。由于业务的变更修改了数据库表结构,这时候就需要升级软件,更新用户手机中的数据库表结构,为了实现这一目的,可以把原来的数据库版本设置为2,并且在onUpgrade()方法中实现表结构的更新
没有使用ORMLite的时候要继承SQLiteOpenHelper,使用了ORMLite框架需继承的是ORMLiteSqliteOpenHelper。使用getDao方法获取Dao对象后即可以对数据库表使用各种方法进行增删改查等操作,Dao声明时泛型了两个参数。一个是与Dao操作的关联对象,第二个是标记数据表的ID,这个ID一般很少使用,除非是在对数据库表ID进行操作的时候。
DAO中对于简单的增删改查使用简单的的方法create()、update()、delete()、insert()、query(),我们可以使用原生的查询语句亦可以使用条件查询、删除、修改、插入对数据库进行操作。