一概要:

在Android 项目开发中,如果要使用数据库,向大家介绍一个关于数据的开源框架ORMLite。

提高我们开发数据的效率,特别是对于数据库使用频繁的项目开发。

配置:我们需要去官网下载两个jar(ormlite-android-5.0.jar,ormlite-core-5.0.jar),

官网:http://ormlite.com/releases/

优点:轻量级;使用简单,易上手;封装完善;

缺点:由于使用到了反射,效率较低。

二使用:

1,配置Bean类:

@DatabaseTable(tableName = "tb_person") //标明这是数据库中一张表,表名为tb_personpublic class Person {    @DatabaseField(generatedId = true) //对应表tb_person,中id列,id为主键且自动生成    private int _id;    @DatabaseField(columnName = "name")//对应列name    private String name;    @DatabaseField(columnName = "descri")//对应列descri    private String descri;    public Person(){}    public Person(String name, String descri){        this.name = name;        this.descri = descri;    }    public int get_id() {        return _id;    }    public String getName() {        return name;    }    public String getDescri() {        return descri;    }    public void set_id(int _id) {        this._id = _id;    }    public void setName(String name) {        this.name = name;    }    public void setDescri(String descri) {        this.descri = descri;    }    @Override    public String toString() {        return "Person{" +                "_id=" + _id +                ", name='" + name + '\'' +                ", descri='" + descri + '\'' +                '}';    }}


2,定义DBHelper,继承OrmLiteSqliteOpenHelper。
public class OrmDBHelper extends OrmLiteSqliteOpenHelper{    private static final String DB_NAME = "test.db";//数据库名    private static final int DB_VERSION = 2;//版本号    private static OrmDBHelper instance;//单例模式    private Map daos = new HashMap();    public OrmDBHelper(Context context){        super(context, DB_NAME, null, DB_VERSION);    }    @Override    public void onCreate(SQLiteDatabase sqLiteDatabase, ConnectionSource connectionSource) {        try{            TableUtils.createTable(connectionSource, Person.class);//数据库创建时        }catch (Exception e){        }    }    @Override    public void onUpgrade(SQLiteDatabase sqLiteDatabase, ConnectionSource connectionSource, int i, int i1) {        try{//版本升级,数据库更新            TableUtils.dropTable(connectionSource, Person.class, true);            onCreate(sqLiteDatabase, connectionSource);        }catch (Exception e){        }    }    /**     * 获取单例     * @param context     * @return     */    public static synchronized OrmDBHelper getInstance(Context context){        Context ct = context.getApplicationContext();         if(instance == null){             synchronized (OrmDBHelper.class){                 if(instance == null){                     instance = new OrmDBHelper(ct);                 }             }         }         return instance;    }    /**     * 通过类名获取dao     */    public Dao getDao(Class clazz) throws SQLException {        Dao dao = null;        String name = clazz.getSimpleName();        if(!daos.containsKey(name)){            dao = super.getDao(clazz);            daos.put(name, dao);        }else{            dao = daos.get(name);        }        return dao;    }    /**     * 释放资源     */    public void close(){        for(String key : daos.keySet()){            Dao dao = daos.get(key);            dao = null;        }        daos.clear();    }}

3,生成实例类Bean对应的BeanDao:

public class PersonDao {    private Context context;    private OrmDBHelper mHelper;    private Dao mDao;    public PersonDao(Context context){        this.context = context;        try{            mHelper = OrmDBHelper.getInstance(context);            mDao = mHelper.getDao(Person.class);        }catch (Exception e){            e.printStackTrace();        }    }    //添加Person    public void add(Person person){        try {            mDao.create(person);        } catch (SQLException e) {            e.printStackTrace();        }    }    public void delete(Person person){        try {            mDao.delete(person);        } catch (SQLException e) {            e.printStackTrace();        }    }    public void update(Person person) {        try {            mDao.update(person);        } catch (SQLException e) {            e.printStackTrace();        }    }    public List queryAll(){        List persons = null;        try {            persons =  mDao.queryForAll();        } catch (SQLException e) {            e.printStackTrace();        }        return persons;    }}

4,调用:

     personDao = new PersonDao(getApplicationContext());
     Person person = new Person("张三", "2B青年");     personDao.add(person);

参考: http://blog.csdn.net/lmj623565791/article/details/39122981




更多相关文章

  1. SpringBoot 2.0 中 HikariCP 数据库连接池原理解析
  2. Android驱动开发知识储备(纯手打,更新:2018.4.11)
  3. android开发AIDL实例
  4. android开发 关于BroadCast Receiver
  5. 日新月异的Android新技术
  6. Android开发历程_6(RadioButton和CheckBox的使用)
  7. Android开发之
  8. JSON格式(2)--android中的JSON
  9. Android学习笔记_4_单元测试

随机推荐

  1. Android开发:如何在Eclipse 中调用Android
  2. Android之Application Resources(应用程序
  3. adb命令详解(一)——模拟器相关命令集
  4. Android5.0新特性——阴影和剪裁(shadow)
  5. Android中的转屏流程
  6. Android(安卓)UI卡顿面试知识小结
  7. 记一次android 在ipv6访问变慢的解决过程
  8. 深入探索 Android(安卓)电量优化
  9. Android,java,xml,xml读取与保存,基于And
  10. Android关于Dex拆分(MultiDex)技术详解