接手一个好久之前的项目里面用到的xUrils2的DbUtils模块,记下笔记。
原作者关于xutils2的地址
https://github.com/wyouflf/xUtils
xUtils jar包下载
http://download.csdn.net/download/qq_36580253/10242195
1.初始化
DbUtils dbUtils = DbUtils.create(context, name, version, new DbUpgradeListener() { @Override public void onUpgrade(DbUtils dbUtils, int i, int i1) { switch (i1){ case 2: try { dbUtils.execNonQuery("alter table person add gender varchar"); } catch (DbException e) { e.printStackTrace(); } case 3: try { dbUtils.createTableIfNotExist(School.class); } catch (DbException e) { e.printStackTrace(); } break; } } });
//是否开启事务,默认为false dbUtils.configAllowTransaction(true);
//是否开启日志输出,默认为true dbUtils.configDebug(false);
Dbutils.creatDb()有多个不同的构造方法。可以只传一个上下文,也可以自己设置名称,版本,路径,数据库升级监听。
2,数据库表的实体类
@Table(name = "person" ) public class Person { //必须有id属性 @Column(column = "id") public int id; @Column(column = "name") public String name ; @Column(column = "age") public int age; @Transient public int test; @Column(column = "gender") public String gender; }@Transient注解 表示实体类有这个字段,数据库表中没有这一列。
3.增,删,改,查
/** * 增 */ List<Person> dbList = new ArrayList<>(); Person person2 = new Person(); person2.name = "a"; person2.age = 17; person2.gender="nan"; dbList.add(person2); Person person3 = new Person(); person3.name = "b"; person3.age = 18; dbList.add(person3); try { mDb.saveAll(dbList); } catch (DbException e) { e.printStackTrace(); } /** * 删 */ try { mDb.delete(Person.class, WhereBuilder.b("name","=","a")); } catch (DbException e) { e.printStackTrace(); } /** * 改 */ try { Person person = new Person(); person.id = 1; person.age = 20; mDb.update(person, "age"); //这里更改的条件只有id,这里参数的意思是将id=id的数据的age列属性改为user对象中的age属性 } catch (DbException e) { e.printStackTrace(); } /** * 查 */ List<Person> all = null; try { all = mDb.findAll(Person.class); } catch (DbException e) { e.printStackTrace(); }