转载

Git@OSC 项目推荐 —— OpenDroid ORM 框架

opendroid 是 Android 上的一个开源 ORM 框架,可以轻松实现将数据库中的数据映射到java bean中、将java bean持久化到sqlite中。opendroid也提供了强大的数据库升级方案,只需修改一个参数即可实现数据库升级,opendroid会自动将旧数据更新到新表中,免除数据库升级数据丢失的烦恼。

opendroid 使用简单,语法简洁,预计10分钟即可完全掌握opendroid的使用。

例如:插入一条数据:

Student stu = new Student();stu.setStuName("亓斌");stu.setStuAge(18);stu.save();

opendroid 的上手:

1、将library目录中的opendroid.jar文件copy到你项目的libs目录。

2、在项目中新建需要映射的java bean文件,并让该类继承自OpenDroid类。

public class Student extends OpenDroid { private String stuName; private int stuAge; private String stuAddr; public String getStuAddr() {  return stuAddr; } public void setStuAddr(String stuAddr) {  this.stuAddr = stuAddr; } public String getStuName() {  return stuName; } public void setStuName(String stuName) {  this.stuName = stuName; } public int getStuAge() {  return stuAge; } public void setStuAge(int stuAge) {  this.stuAge = stuAge; } } 

3、在asserts目录中新建open_droid.xml文件

<?xml version="1.0" encoding="utf-8"?> <open-droid>     <name value="school" />      <version value="1" />      <mapping class="org.loader.opendroid.Student" /> </open-droid>

name 指定了数据库的名称, version指定了数据库的版本, mapping指定了需要映射的javabean

4、配置完成后,开始使用:

    /**      * step 1 : 插入一条数据, 查询一条数据      */     Student stu = new Student();     stu.setStuName("亓斌");     stu.setStuAge(18);     stu.save();      Student result = OpenDroid.query.find(Student.class, 1);     System.out.println(result.getStuName());      /**      * step 2 : 查询所有记录      */     for(int i=0;i<10;i++) {         Student stu = new Student();         stu.setStuAge(20 + i);         stu.setStuName("opendroid" + i);         stu.save();     }      List<Student> result = OpenDroid.query.find(Student.class);     for(Student res : result) {         System.out.println(res.getStuName());     }      /**      * step 3 : 查询多条记录      */     List<Student> result = OpenDroid.query.find(Student.class, 1, 5, 10);     for(Student res : result) {         System.out.println(res.getId() + " : " + res.getStuName());     }      /**      * step 4 : 条件查询      */     List<Student> result = OpenDroid.query.columns("stuName", "stuAge")             .where("_id>?", "5").order("_id DESC").limit(3)             .find(Student.class);     for(Student res : result) {         System.out.println(res.getStuName() + " : " + res.getStuAge());     }       /**      * step 5 : 更新数据      */     Student stu = new Student();     stu.setStuName("loader");     stu.setStuName("loader");     stu.update(4);     stu.update("_id>?", "4");      List<Student> result = OpenDroid.query.find(Student.class);     for(Student res : result) {         System.out.println(res.getStuName());     }      /**      * step 6 : 使用ContentValues更新      */     ContentValues cv = new ContentValues();     cv.put("stuName", "opendroid");     OpenDroid.update(Student.class, cv, "_id=?", "8");      Student result = OpenDroid.query.find(Student.class, 8);     System.out.println(result.getStuName());      /**      * step 7 : 特定删除      */     int length = OpenDroid.delete(Student.class, 1, 2, 3);     System.out.println(length);      /**      * step 8 : 使用条件删除      */     int length = OpenDroid.delete(Student.class, "_id>?", "5");     System.out.println(length);
正文到此结束
Loading...