1 public class MainActivity extends Activity { 2 3 private DbUtils mDbUtils; 4 5 private TextView mTv; 6 7 @Override 8 protected void onCreate(Bundle savedInstanceState) { 9 super.onCreate(savedInstanceState); 10 setContentView(R.layout.activity_main); 11 12 mTv = (TextView) findViewById(R.id.tv); 13 14 mDbUtils = mDbUtils.create(this); 15 // mDbUtils = mDbUtils.create(this, "dbName.db"); 16 // 第二个参数指定数据库存放的位置 17 // mDbUtils = mDbUtils.create(context, dbDir, dbName) 18 // mDbUtils = mDbUtils.create(this, "dbName.db", 2, new 19 // DbUpgradeListener() { 20 // 21 // @Override 22 // public void onUpgrade(DbUtils arg0, int arg1, int arg2) { 23 // 24 // } 25 // }); 26 } 27 28 public void update(View view) { 29 Person p = new Person("小红1", 11, "nv"); 30 try { 31 // 更新和所给对象主键相同的数据,具体要更新哪咧的数据,由第二个可变长度数组指定,传null则所有列都更新 32 // mDbUtils.update(p, null); 33 34 // 将符合where条件的行,改为所给的Person的值 35 mDbUtils.update(p, WhereBuilder.b("name", "=", "小李"), "sex", "age", "name"); 36 37 } catch (DbException e) { 38 e.printStackTrace(); 39 } 40 } 41 42 /** 43 * 数据查询 44 */ 45 public void find(View view) { 46 try { 47 // 查找表中的所有数据 48 List<Person> list = mDbUtils.findAll(Person.class); 49 50 // 自定义条件 查找 51 // List<Person> list = 52 // mDbUtils.findAll(Selector.from(Person.class).where("sex", "=", 53 // "女") 54 // .and("age", "=", 15)); 55 56 // 数据查找排序 57 // List<Person> list = 58 // mDbUtils.findAll(Selector.from(Person.class).orderBy("age", 59 // false)); 60 61 // Person p = 62 // mDbUtils.findFirst(Selector.from(Person.class).where("sex", "=", 63 // "男")); 64 65 mTv.setText(list.toString()); 66 } catch (DbException e) { 67 e.printStackTrace(); 68 } 69 } 70 71 /** 72 * 删除 73 */ 74 public void delete(View view) { 75 // Person p = new Person("张三", 15, "斯蒂芬"); 76 try { 77 // 删除所给的数据对应的表中,主键相同的数据(删除是不管除了主键外的其他数据是否相同) 78 // mDbUtils.delete(p); 79 80 mDbUtils.delete(Person.class, 81 WhereBuilder.b("sex", "=", "男").and("age", "=", 18).or("age", "=", 32)); 82 83 // 删除所给的类的表中的所有数据 84 // mDbUtils.deleteAll(Person.class); 85 86 // 删除跟所给的list的类主键的值相同的数据 87 // Person p1 = new Person("小明", 18, "男"); 88 // Person p2 = new Person("小红", 15, "女"); 89 // List<Person> list = new ArrayList<Person>(); 90 // list.add(p1); 91 // list.add(p2); 92 // mDbUtils.deleteAll(list); 93 94 } catch (DbException e) { 95 e.printStackTrace(); 96 } 97 } 98 99 /** 100 * 数据的插入 101 */ 102 public void insert(View view) { 103 Person p1 = new Person("小明", 18, "男"); 104 Child c = new Child("小强", "男", 10); 105 // p1.mChild = c; 106 107 // Person p2 = new Person("小红", 15, "女"); 108 // Person p3 = new Person("小丽", 21, "女"); 109 // Person p4 = new Person("小李", 32, "男"); 110 // 111 // List<Person> list = new ArrayList<Person>(); 112 // list.add(p1); 113 // list.add(p2); 114 // list.add(p3); 115 // list.add(p4); 116 117 try { 118 // 将数据保存到数据库 119 // mDbUtils.save(p1); 120 // 保存一个列表,将列表的每一个item作为数据库中的一行 121 // mDbUtils.saveAll(list); 122 123 // 若数据库中没有存在 对应主键的数据,则保存数据 124 // 若已经存在对应主键的数据,则更新该主键对应的数据 125 mDbUtils.saveOrUpdate(p1); 126 mDbUtils.saveOrUpdate(c); 127 // mDbUtils.saveOrUpdateAll(list); 128 } catch (DbException e) { 129 e.printStackTrace(); 130 } 131 } 132 }
1 // 指定该类保存在数据库中的表名 2 @Table(name = "Person") 3 public class Person { 4 5 // 默认情况下id作为xUtil数据库的主键,而且自增长的 6 // public int id; 7 8 @Id 9 public String name; 10 11 public int age; 12 13 public String sex; 14 15 // @Foreign(foreign = "id") 16 // public Child mChild; 17 18 /** 19 * 若是重写了构造方法的话,必须提供一个不带 参数的构造方法,(查询的时候才会用到) 20 */ 21 public Person() { 22 23 } 24 25 public Person(String name, int age, String sex) { 26 this.name = name; 27 this.age = age; 28 this.sex = sex; 29 } 30 31 @Override 32 public String toString() { 33 return "Person [name=" + name + ", age=" + age + ", sex=" + sex + ", mChild=" + "]\n"; 34 } 35 }
1 public class Child { 2 3 @Id 4 public String name; 5 6 public String sex; 7 8 public int age; 9 10 public Child() { 11 12 } 13 14 public Child(String name, String sex, int age) { 15 this.name = name; 16 this.sex = sex; 17 this.age = age; 18 } 19 20 @Override 21 public String toString() { 22 return "Child [ name=" + name + ", sex=" + sex + ", age=" + age + "]"; 23 } 24 }
时间: 2024-10-09 10:21:48