android ormlite框架,Android ORMLite框架笔记

一概要:

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

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

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

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

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

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

二使用:

1,配置Bean类:

@DatabaseTable(tableName = "tb_person") //标明这是数据库中一张表,表名为tb_person

public 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 Mapdaos = 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 DaomDao;

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 ListqueryAll(){

Listpersons = 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值