GreenDAO:
会生成一个数据访问,不用我们书写访问数据库的代码:
核心原理图
生成代码
就是用生成器生成一个对应的java类的生成工厂
public static void main(String[] args) { // id name age sex // Schema s=new Schema(版本号, 代码包名);Schema s = new Schema(1, "com.itheima.redbaby.dao"); // 描述 对象Entity person = s.addEntity("Person");person.addIdProperty().autoincrement().primaryKey();// idperson.addStringProperty("name");person.addIntProperty("age");person.addStringProperty("sex"); // 生成代码 // new DaoGenerator().generateAll(s, 输入路径); try {// .. 工作空间 new DaoGenerator().generateAll(s, "../greendao_redbaby/src/");} catch (IOException e) { // TODO Auto-generated catch blocke.printStackTrace();} catch (Exception e) { // TODO Auto-generated catch blocke.printStackTrace();}
}
代码生成在指定的路劲如下
测试代码
@Test public void testLoad() {DaoSession sesion = getSession();PersonDao person = sesion.getPersonDao();Person p=person.load(1L);Log.i("wzx", p.getName());}
@Test public void testLoadAll() {DaoSession sesion = getSession();PersonDao person = sesion.getPersonDao();List<Person> list = person.loadAll(); for (Person p : list) {Log.i("wzx", p.getName());}
}
@Test public void testInsert() {
DaoSession sesion = getSession(); // 获取具体一个Dao PerpsonDaoPersonDao dao = sesion.getPersonDao();Person p = new Person();p.setAge(1);p.setName("张三的歌");p.setSex("man");dao.insert(p);}
public DaoSession getSession() { // 描述数据 SHOPPING.db // SqliteOpenHelper // |--DevOpenHelperSQLiteDatabase db = new DaoMaster.DevOpenHelper(mContext, "SHOPPING.db", null).getWritableDatabase();DaoMaster dm = new DaoMaster(db); // 获取Dao的集合DaoSession PersonDaoDaoSession sesion = dm.newSession(); return sesion;}
@Test public void testDeleteByKey() {DaoSession sesion = getSession();PersonDao personDao = sesion.getPersonDao();personDao.deleteByKey(1L);} @Test public void testUpdate() {DaoSession sesion = getSession();PersonDao personDao = sesion.getPersonDao();Person p=personDao.load(1L);p.setAge(22);p.setSex("woman");personDao.update(p);
}
总结:
整体简单了我们对数据库的使用,使的我们不过过多的书写SQL代码;
只需要我们把数据库的每一Row。 专话成为 JavaBean的字段就可以了。
简单粗暴;
时间: 2024-10-25 00:39:09