ORMLite是常用的一个ORM框架,她不止可以用在Android的sqlite数据库,也可以使用她操作其他常见的数据库。这儿是根据官方文档抽取来的android用法。
一,添加依赖
导入ormlite-core.jar和ormlite-android.jar:下载jar
或者build.gradle中添加:
compile 'com.j256.ormlite:ormlite-android:5.0'
compile 'com.j256.ormlite:ormlite-core:5.0'
二,创建Bean类
1>类使用@DatabaseTable注解,标识一个表。
2>成员变量使用 @DatabaseField 注解,表示表中的列。
3>相关属性设置可以查询其依赖包中的DatabaseTable和Column注解类。持久化的数据类型可以查阅ORMLite官方文档或库源码。
4>添加一个无参的构造函数。当执行查询返回结果时,ORMLite会使用Java反射构造函数创建对象。
@DatabaseTable(tableName = "accounts")
public class Account {
//generatedId = true表示id主键自动生成
@DatabaseField(generatedId = true)
private int id;
//id = true表示这个列可以通过ID方法执行查询,更新,删除
@DatabaseField(id = true)
private String name;
//canBeNull = false表示不可以为空
@DatabaseField(canBeNull = false)
private String password;
public Account() {
// ORMLite 需要一个无参构造器
}
public Account(String name, String password) {
this.name = name;
this.password = password;
}
public int getId()
{
return id;
}
public void setId(int id)
{
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
三,创建数据库
1>继承OrmLiteSqliteOpenHelper 创建database helper;
2>在onCreate方法中调用TableUtils.createTable创建表,onUpgrade方法执行数据库更新。TableUtils类提供了一些创建和删除表的静态方法,参考源代码。
public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
private static final String TABLE_NAME = "sqlite.db";
public DatabaseHelper(Context context) {
super(context, TABLE_NAME, null, 2);
}
@Override
public void onCreate(SQLiteDatabase database, ConnectionSource connectionSource) {
try {
TableUtils.createTable(connectionSource, Bean.class);
} catch (java.sql.SQLException e) {
e.printStackTrace();
}
}
@Override
public void onUpgrade(SQLiteDatabase database, ConnectionSource connectionSource, int oldVersion, int newVersion) {
}
}
四,创建DAO
在数据访问对象(Data Access Objects (DAO))类中隔离数据库操作,提供创建,删除,更新,等等操作。每个表都对应一个DAO,每个DAO有两个参数:使用DAO持久化数据的实体类和用来标示指定表中行的ID列,如果类中没设置ID列,可以把对象或null作为第二个参数。例如,在上面Account类中,“name”成员是ID列(id = true),所以ID列是字符串。
创建DAO的最简单的方法是调用DaoManager.createDao(),这样如果它们被内部ORMLite功能需要ÿ