目前XUtils主要有四大模块:
1、DbUtils模块:用于数据库的操作,也是需要注解方式指定表名和列名;
2、ViewUtils模块:注解方式就可以进行UI,资源和事件绑定;
3、HttpUtils模块:用于网络数据的请求;
4、BitmapUtils模块:用于图片的下载和绑定视图;
本文主要讲对数据库的操作
< 一 >添加依赖:
compile 'org.xutils:xutils:3.3.40'
< 二 >注册MyApplication
/**
* 注意:MyApplication要在清单文件中注册
*/
public class MyApplication extends Application {
/**
* 实现单例 任何一个页面都可以拿到这个类的数据和对象
*/
private static MyApplication instance;
public static MyApplication getInstance(){
return instance;
}
@Override
public void onCreate() {
super.onCreate();
x.Ext.init(this);//注册xUtils
x.Ext.setDebug(false);
instance = this;
}
/**
* 获取数据库的管理器
* 通过管理器进行增删改查
*/
public DbManager getDbManager(){
DbManager.DaoConfig daoConfig = new DbManager.DaoConfig();
//默认在data/data/包名/database/数据库名称
daoConfig.setDbName("XXX.db");
//通过manager进行增删改查
return x.getDb(daoConfig);
}
}
< 三 >在需要存入的数据上添加注解
public static class DataBean {
@Column(name = "id",isId = true,autoGen = true)//注释列名主键,自增长
private int id;
@Column(name = "userName")//注释列名
private String userName;
@Column(name = "uesrLogo")//注释列名
private String uesrLogo;
@Column(name = "commentCount")//注释列名
private int commentCount;
< 四 > 增删改查
/**
* 实现数据库的存储
*/
public void save(View view) {
//获取数据库管理器
DbManager manager = MyApp.getInstance().getDbManager();
//数据
DataBean data= new DataBean();
// data.setId(1);//自增长的id设置了也是没有用的
data.setUserName("XXX");
data.setUesrLogo("http://my.csdn.net/");
data.setCommentCount(100);
try {
//实现数据的存储,配合DataBean 类中的注释才能进行对应的存储
//表名和列名都是在DataBean 中注释决定的。
manager.save(data);//保存
// manager.saveOrUpdate(user);//保存或更新,这如果数据不存在是不会保存的,存在的话会跟新
} catch (DbException e) {
e.printStackTrace();
}
}
/**
* 删除数据
* //删除整个表的所有数据
* //manager.delete(DataBean .class);
* //删除指定id的记录
* //manager.deleteById(DataBean .class,1);
* //删除某一类数据 where userName="张三"
* manager.delete(DataBean .class, WhereBuilder.b("userName", "=", "王五").and("commentCount", "<", "100"));
*/
public void delete(View view) {
DbManager manager = MyApp.getInstance().getDbManager();
try {
manager.delete(DataBean .class, WhereBuilder.b("userName", "=", "李文"));
} catch (DbException e) {
e.printStackTrace();
}
}
/**
* 修改数据
*/
public void update(View view) {
DbManager manager = MyApp.getInstance().getDbManager();
//要修改的数据,以键值对的显示传入,
KeyValue keyValue = new KeyValue("userName", "李世民");
try {
//过滤commentCount小于20的数据就修改,这里可以设置多个keyValue值
manager.update(DataBean .class, WhereBuilder.b("commentCount", "<", "20"), keyValue);
} catch (DbException e) {
e.printStackTrace();
}
}
/**
* 查找数据
*/
public void query(View view) {
//查询所有
//获取管理器
DbManager manager = MyApp.getInstance().getDbManager();
try {
List<DataBean > dataList = manager.findAll(DataBean .class);
//manager.findById()找单个的对象
for (int i = 0; i < dataList .size(); i++) {
Log.e("TAG", dataList .get(i).toString());//打印显示
}
} catch (DbException e) {
e.printStackTrace();
}
}
这里就是XUtils对数据库的简单增删改查的操作,不需要写很多的建表和对列的操作的语句,非常方便