Android ORM框架介绍之android-liteorm(archiver)注解与封装
来源:互联网 发布:c语言初始化顺序表 编辑:程序博客网 时间:2024/06/04 08:11
Android ORM框架介绍之android-liteorm注解与封装
LiteOrm
代号: archiver
LiteOrm 是一个速度快、小巧却强大的 Android ORM 框架类库,速度快、体积小、性能高,开发者基本一行代码实现数据库的增删改查操作,以及实体关系的持久化和自动映射。 自动化且比系统自带数据库操作快1倍!
作者个人主页
liteorm注解
常用注解
- @Table:用于类,默认使用类名,也可以自定义。如:@Table(“tb_user”)
- @PrimaryKey:主键,通过AssignType枚举来设置值,如:@PrimaryKey(AssignType.AUTO_INCREMENT)
- BY_MYSELF,
- AUTO_INCREMENT;//自增
- @Unique:唯一字段(行)
- @UniqueCombine:唯一(列中字段值唯一)
- @NotNull:字段部位none
- @Ingore:使用该注解表示字段不存入数据库
- @Mapping:表示关联关系,通过枚举Relation设置值,如: @Mapping(Relation.OneToOne)
- ManyToMany,//多对多
- OneToMany,//一对多
- ManyToOne,//多对一
- OneToOne;//一对一
- @Column:自定义字段名(列名)。如:@Column(“name”)
- @Conflict:数据库冲突策略,通过枚举Strategy设置值,可用于表,也可用于字段上
- ROLLBACK(” ROLLBACK “),//回滚
- ABORT(” ABORT “),//中断
- FAIL(” FAIL “),//失败
- IGNORE(” IGNORE “),//忽略
- REPLACE(” REPLACE “);//替换
liteorm的封装
public class DataBaseManager { private static DataBaseManager manager; private static final String DB_NAME = "my.db"; private LiteOrm liteOrm; private DataBaseManager(Context context) { if (liteOrm == null) { liteOrm = LiteOrm.newSingleInstance(context, DB_NAME); } } public static DataBaseManager getInstance(Context context) { context = context.getApplicationContext(); if (manager == null) { synchronized (DataBaseManager.class) { if (manager == null) { manager = new DataBaseManager(context); } } } return manager; } /** * 插入一条记录 */ public <T> long insert(T t) { return liteOrm.save(t); } /** * 插入所有记录 */ public <T> void insertAll(List<T> list) { liteOrm.save(list); } /** * 根据对象查询数据 */ public <T> int update(T t) { return liteOrm.update(t); } /** * 查询所有数据 */ public <T> int updateAll(List<T> list) { return liteOrm.update(list); } /** * 根据id查询 */ public <T> T query(long id, Class<T> clazz) { return liteOrm.queryById(id, clazz); } /** * 查询所有 */ public <T> List<T> queryAll(Class<T> cla) { return liteOrm.query(cla); } /** * 查询 某字段 等于 Value的值 */ @SuppressWarnings("unchecked") public <T> List<T> queryByWhere(Class<T> cla, String field, String[] value) { return liteOrm.query(new QueryBuilder(cla).where(field + "=?", value)); } /** * 查询 某字段 等于 Value的值 可以指定从1-20,就是分页 */ @SuppressWarnings("unchecked") public <T> List<T> queryByWhereLength(Class<T> cla, String field, String[] value, int start, int length) { return liteOrm.query(new QueryBuilder(cla).where(field + "=?", value).limit(start, length)); } /** * 删除一个数据 */ public <T> void delete(T t) { liteOrm.delete(t); } /** * 删除所有数据 */ public <T> void deleteAll(Class<T> clazz) { liteOrm.deleteAll(clazz); } /** * 删除集合中的数据 */ public <T> void deleteList(List<T> list) { liteOrm.delete(list); } /** * 删除数据库 */ public void deleteDatabase() { liteOrm.deleteDatabase(); }}
liteorm的使用
@Table("tb_user")public class User { @PrimaryKey(AssignType.AUTO_INCREMENT)//主键,自增 private long id; @NotNull private String name; private int age; public User(){} public User(long id, String name, int age) { this.id = id; this.name = name; this.age = age; } public long getId() { return id; } public void setId(long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "User{" + "id=" + id + ", name='" + name + '\'' + ", age=" + age + '}'; }}
MainActivity
public class MainActivity extends AppCompatActivity implements View.OnClickListener { private Button insert; private Button update; private Button query; private Button queryAll; private Button delete; private Button deleteAll; private TextView tv_query; private TextView tv_queryall; private DataBaseManager manager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); insert = (Button) findViewById(R.id.btn1); update = (Button) findViewById(R.id.btn2); query = (Button) findViewById(R.id.btn3); queryAll = (Button) findViewById(R.id.btn4); delete = (Button) findViewById(R.id.btn5); deleteAll = (Button) findViewById(R.id.btn6); tv_query = (TextView) findViewById(R.id.tv_query); tv_queryall = (TextView) findViewById(R.id.tv_queryall); insert.setOnClickListener(this); update.setOnClickListener(this); query.setOnClickListener(this); queryAll.setOnClickListener(this); delete.setOnClickListener(this); deleteAll.setOnClickListener(this); manager = DataBaseManager.getInstance(MainActivity.this); } private void deleteAll() { manager.deleteAll(User.class); } private void deleteData() { User user = new User(); user.setId(1); manager.delete(user); } private List<User> queryAll() { return manager.queryAll(User.class); } private User queryData() { return manager.query(1, User.class); } private void updateData() { User user = new User(1, "lisi", 28); manager.update(user); } private void insertData() { User user1 = new User(1, "zhangsan", 20); manager.insert(user1); User user2 = new User(2, "zhangsan", 20); manager.insert(user2); User user3 = new User(3, "zhangsan", 20); manager.insert(user3); User user4 = new User(4, "zhangsan", 20); manager.insert(user4); //inserAll// List<User> list = new ArrayList<>();// list.add(user1);// list.add(user2);// list.add(user3);// list.add(user4);// manager.insertAll(list); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn1: insertData(); break; case R.id.btn2: updateData(); break; case R.id.btn3: User user = queryData(); if (user == null) { tv_query.setText("查询的数据不存在"); } else { tv_query.setText(user.toString()); } break; case R.id.btn4: List<User> list = queryAll(); if (list == null) { tv_queryall.setText("查询的数据不存在"); } else { tv_queryall.setText(list.toString()); } break; case R.id.btn5: deleteData(); break; case R.id.btn6: deleteAll(); break; } }}
0 0
- Android ORM框架介绍之android-liteorm(archiver)注解与封装
- Android ORM框架介绍之OrmLite注解与封装
- Android ORM框架 LiteOrm使用
- Android数据库框架-Archiver(LiteOrm)的使用
- Android数据库框架-Archiver(LiteOrm)的使用
- Android数据库框架-Archiver(LiteOrm)的简单使用(一)
- Android数据库框架-Archiver(LiteOrm)的简单使用(一)
- Android ORM框架介绍之greenDao注解及加密(三)
- Android ORM框架介绍之greenDao封装(二)
- (4.2.9.1) Android数据库框架-Archiver(LiteOrm)的简单使用(一)
- Android 数据库框架LiteOrm简介
- Android 数据库框架 LiteOrm使用
- android ORM框架ORMLite封装
- LiteOrm:Android数据库框架-存储服务器(LiteOrm)的使用
- LiteOrm:Android数据库框架-存储服务器(LiteOrm)的使用
- LiteOrm:Android高性能数据库框架
- LiteORM框架导入Android Studio步骤简介
- Android ORM框架介绍之greenDao配置(一)
- X86 内存布局分析(Memory map)
- jap 复合查询
- oracle存储过程和存储函数(1)
- numpy入门2
- 多年之痒,终结于今日
- Android ORM框架介绍之android-liteorm(archiver)注解与封装
- Mysql 平均值中的最小值
- (2)HTML5-内容标记方法
- SRILM使用之用平滑Katz回退训练语言模型
- IO流
- jvm的原理
- QQ互联帐号注册流程
- servlet+jsp实现小小购物车功能
- Java中的泛型方法