赞
踩
类型名称 | 描述 | 初始值 |
---|---|---|
Integer | 封装整型 | null |
int | 整型 | 0 |
Long | 封装长整型 | null |
long | 长整型 | 0L |
Double | 封装双精度浮点型 | null |
double | 双精度浮点型 | 0 |
Float | 封装单精度浮点型 | null |
float | 单精度浮点型 | 0 |
Short | 封装短整型 | null |
short | 短整型 | 0 |
String | 字符串型 | null |
Boolean | 封装布尔型 | null |
boolean | 布尔型 | 0 |
Byte | 封装字节型 | null |
byte | 字节型 | 0 |
Character | 封装字符型 | null |
char | 字符型 | ’ ’ |
Date | 日期类 | null |
Time | 时间类 | null |
Timestamp | 时间戳类 | null |
Calendar | 日历类 | null |
Blob | 二进制大对象 | null |
Clob | 字符大对象 | null |
接口名称 | 描述 |
---|---|
@Database | 被@Database注解且继承了OrmDatabase的类对应数据库类 |
@Entity | 被@Entity注解且继承了OrmObject的类对应数据表类 |
@Column | 被@Column注解的变量对应数据表的字段 |
@PrimaryKey | 被@PrimaryKey注解的变量对应数据表的主键 |
@ForeignKey | 被@ForeignKey注解的变量对应数据表的外键 |
@Index | 被@Index注解的内容对应数据表索引的属性 |
类名 | 接口名 | 描述 |
---|---|---|
OrmConfig.Builder | Builder setEncryptKey(byte[] encryptKey) | 为数据库配置类设置数据库加密密钥,创建或打开数据库时传入包含数据库加密密钥的配置类,即可创建或打开加密数据库 |
类名 | 接口名 | 描述 |
---|---|---|
OrmContext | boolean insert(T object) | 添加方法 |
OrmContext | boolean update(T object) | 更新方法 |
OrmContext | List query(OrmPredicates predicates) | 查询方法 |
OrmContext | boolean delete(T object) | 删除方法 |
OrmContext | OrmPredicates where(Class clz) | 设置谓词方法 |
类名 | 接口名 | 描述 |
---|---|---|
OrmContext | void registerStoreObserver(String alias, OrmObjectObserver observer) | 注册数据库变化回调 |
OrmContext | void registerContextObserver(OrmContext watchedContext, OrmObjectObserver observer) | 注册上下文变化回调 |
OrmContext | void registerEntityObserver(String entityName, OrmObjectObserver observer) | 注册数据库实体变化回调 |
OrmContext | void registerObjectObserver(OrmObject ormObject, OrmObjectObserver observer) | 注册对象变化回调 |
类名 | 接口名 | 描述 |
---|---|---|
OrmMigration | public void onMigrate(int beginVersion, int endVersion) | 数据库版本升降级接口 |
类名 | 接口名 | 描述 |
---|---|---|
OrmContext | boolean backup(String destPath) | 数据库备份接口 |
OrmContext | boolean restore(String srcPath); | 数据库恢复备份接口 |
compileOptions{
annotationEnabled true
}
dependencies {
compile files("orm_annotations_java.jar的路径", "orm_annotations_processor_java.jar的路径", "javapoet_java.jar的路径")
annotationProcessor files("orm_annotations_java.jar的路径", "orm_annotations_processor_java.jar的路径", "javapoet_java.jar的路径")
}
dependencies {
compile files("ohos.jar的路径","orm_annotations_java.jar的路径","orm_annotations_processor_java.jar的路径","javapoet_java.jar的路径")
annotationProcessor files("orm_annotations_java.jar的路径","orm_annotations_processor_java.jar的路径","javapoet_java.jar的路径")
}
@Database(entities = {User.class, Book.class, AllDataType.class}, version = 1)
public abstract class BookStore extends OrmDatabase {
}
@Entity(tableName = "user", ignoredColumns = {"ignoredColumn1", "ignoredColumn2"},
indices = {@Index(value = {"firstName", "lastName"}, name = "name_index", unique = true)})
public class User extends OrmObject {
// 此处将userId设为了自增的主键。注意只有在数据类型为包装类型时,自增主键才能生效。
@PrimaryKey(autoGenerate = true)
private Integer userId;
private String firstName;
private String lastName;
private int age;
private double balance;
private int ignoredColumn1;
private int ignoredColumn2;
// 开发者自行添加字段的getter和setter方法。
}
DatabaseHelper helper = new DatabaseHelper(context);
// context入参类型为ohos.app.Context,注意不要使用slice.getContext()来获取context,请直接传入slice,否则会出现找不到类的报错。
OrmContext context = helper.getOrmContext("BookStore", "BookStore.db", BookStore.class);
OrmContext context = helper.getOrmContext("BookStore",
"BookStore.db",
BookStoreUpgrade.class,
new TestOrmMigration32(),
new TestOrmMigration23(),
new TestOrmMigration12(),
new TestOrmMigration21());
private static class TestOrmMigration12 extends OrmMigration {
// 此处用于配置数据库版本迁移的开始版本和结束版本,super(startVersion, endVersion)即数据库版本号从1升到2。
public TestOrmMigration12() {super(1, 2); }
@Override
public void onMigrate(RdbStore store) {
store.executeSql("ALTER TABLE `Book` ADD COLUMN `addColumn12` INTEGER");
}
}
User user = new User();
user.setFirstName("Zhang");
user.setLastName("San");
user.setAge(29);
user.setBalance(100.51);
boolean isSuccessed = context.insert(user);
isSuccessed = context.flush();
// 更新数据
OrmPredicates predicates = context.where(User.class);
predicates.equalTo("age", 29);
List<User> users = context.query(predicates);
User user = users.get(0);
user.setFirstName("Li");
context.update(user);
context.flush();
// 删除数据
OrmPredicates predicates = context.where(User.class);
predicates.equalTo("age", 29);
List<User> users = context.query(predicates);
User user = users.get(0);
context.delete(user);
context.flush();
ValuesBucket valuesBucket = new ValuesBucket();
valuesBucket.putInteger("age", 31);
valuesBucket.putString("firstName", "ZhangU");
valuesBucket.putString("lastName", "SanU");
valuesBucket.putDouble("balance", 300.51);
OrmPredicates update = context.where(User.class).equalTo("userId", 1);
context.update(update, valuesBucket);
OrmPredicates query = context.where(User.class).equalTo("lastName", "San");
List<User> users = context.query(query);
// 定义一个观察者类。
private class MyOrmObjectObserver implements OrmObjectObserver {
@Override
public void onChange(OrmContext changeContext, AllChangeToTarget subAllChange) {
// 用户可以在此处定义观察者行为
}
}
// 调用registerEntityObserver方法注册一个观察者observer。
MyOrmObjectObserver observer = new MyOrmObjectObserver();
context.registerEntityObserver("user", observer);
// 当以下方法被调用,并flush成功时,观察者observer的onChange方法会被触发。其中,方法的入参必须为User类的对象。
public <T extends OrmObject> boolean insert(T object)
public <T extends OrmObject> boolean update(T object)
public <T extends OrmObject> boolean delete(T object)
OrmContext context = helper.getObjectContext("OrmBackup", "OrmBackup.db", BookStore.class);
context.backup("OrmBackup001.db");
context.close();
helper.deleteRdbStore("OrmBackup.db");
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。