Android(安卓)ORMLite框架笔记
16lz
2021-01-26
一概要:
在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 + '\'' + '}'; }}
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
更多相关文章
- SpringBoot 2.0 中 HikariCP 数据库连接池原理解析
- Android驱动开发知识储备(纯手打,更新:2018.4.11)
- android开发AIDL实例
- android开发 关于BroadCast Receiver
- 日新月异的Android新技术
- Android开发历程_6(RadioButton和CheckBox的使用)
- Android开发之
- JSON格式(2)--android中的JSON
- Android学习笔记_4_单元测试