标签:listen debug ext.get 增删改查 database cat tin 写入 extern
目前Android开发很火的一个框架Xutils框架。它有四个模块:1、ViewUtils。2、HttpUtils。3、DbUtils。4、BitmapUtils。
记得是去年的差不多这个时候,我的大学老师张老师介绍我去学习Xutils框架,当时项目有很多对数据库的操作,所以刚学习Xutils的时候,首先着重学习对DbUtils模块的使用,感受到了他的好用之处。接下来为大家介绍一下Xutils框架的基本使用。
使用Xutils框架需要下载Xutils的jar包。(网上很好找,我使用的是xutils-3.3.25)
需要加入以下两个权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
在Application中初始化Xutils框架
x.Ext.init(this); // 初始化Xutils框架
x.isDebug(); //开启Debug模式,对app性能有一些影响
(一)、DbUtils模块
Xutils框架使用了注解的方式来方便了对数据的操作,如下:
@Table(name = "t_person")
public class Person {
@Column(name = "id", isId = true, autoGen = true, property = "unique")
public int id;
@Column(name="username")
public String username;
@Column(name="password")
public String password;
}
注意:id属性的注解设置为isId=true,就不用设置autoGen=true和property = "unique",这里只是演示有这么一个属性。设置autoGen=true可以让此字段自增,pr operty="unique"可以让该字段唯一,当然也可以设置一些其他的限制。
接下来是对数据库的操作:
1)、收下获取DaoConfig实例 private static DbManager.DaoConfig getDaoconfig(Context context) {
DbManager.DaoConfig daoConfig = new DbManager.DaoConfig(); //获取DaoConfig
daoConfig.setDbName("mydb.db"); //设置数据库名称
daoConfig.setDbVersion(1); //设置版本号
daoConfig.setDbDir(context.getDir("DATABASE", 0)); // 数据库位置为:data/data/包名/app_DATABASE
daoConfig.setDbOpenListener(new DbManager.DbOpenListener() {
@Override
public void onDbOpened(DbManager db) {
// 开启WAL, 对写入加速提升巨大
db.getDatabase().enableWriteAheadLogging();
}
});
return daoConfig;
}
2)、增删改查的操作
//获取DbManager
DbManager manager = x.getDb(getDaoconfig(context)); //获得DbManager
Person person = new Person();
person.name = "张三";
person.password = "123456";
//保存数据,调用manager的save方法直接保存对象到数据库(是不是感觉和Hibernate很像)
manager.save(person);
//保存或者更新数据,如果id在数据库中存在,则更新对象,不存在则添加为新的数据
manager.saveOrUpdate(person);
//删除数据,会删除数据库中与person的id相同的数据
manager.delete(person);
//查询数据,Xutils提供了几种查询方式,但是原理都是一样的,方便了开发人员的使用
List<Pseron> ps = manager.selector(Person.class).where("username", "=", "张三").and("password", "=", "12346").findAll();
使用wher的参数为("列名", "运算符", "值")。运算符可以是“=”、“!=”、“<”、“<=”等等,并且可以根据实际情况添加add、or等条件。
使用findAll返回的是所有符合条件的数据的List集合,泛型为当前查询的实体类。findFirst只得到查询的第一条数据。总之findAll的查询结果是一个List集合,而
findFirst的查询结果是一个对象,这个也很好理解。
如果只想查询某个列或者某几个列,可以用以下的方法:
DbModel model = manager.selector(Person.class).select("username","password").findFirst();
返回的是一个DbModel类型,它将查询到的数据已Key-Value的形式存在,如果需要得到某一列的数据,只需要model.getString("列名")、model.getInt("列名") 等就可以得到数据。
标签:listen debug ext.get 增删改查 database cat tin 写入 extern
原文地址:http://www.cnblogs.com/yinkaiblog/p/6822993.html