GreenDao 学习
2016-12-09 22:00
134 查看
源码
2、复制freemarker-2.3.20.jar和greendao-generator-1.3.0.jar 和 greendao-1.3.7.jar(3个)或者freemarker-2.3.23.jar和greendao-generator-2.0.0.jar(2个)到libs目录下
3、新建类:com.doris.greendaoeclipsedemo.test.Test.java
运行:
刷新项目:
4、基本的操作数据
2、
3、新建Java Library (GreenDaoStudioDemoLibrary)
4、和2步骤一样,给GreenDaoStudioDemoLibrary添加依赖
5、GreenDaoStudioDemoLibrary
build.gradle
com.example.Test.java
6、基本操作和eclipse差不多
2、like:
3、between:
4、> gt 和 < lt:
5、>= ge 和 <= le:
7、排序
8、多线程:
……
源码
Eclipse:
1、新建Android 项目 (GreenDaoEclipseDemo)2、复制freemarker-2.3.20.jar和greendao-generator-1.3.0.jar 和 greendao-1.3.7.jar(3个)或者freemarker-2.3.23.jar和greendao-generator-2.0.0.jar(2个)到libs目录下
3、新建类:com.doris.greendaoeclipsedemo.test.Test.java
package com.doris.greendaoeclipsedemo.test; import de.greenrobot.daogenerator.DaoGenerator; import de.greenrobot.daogenerator.Entity; import de.greenrobot.daogenerator.Property; import de.greenrobot.daogenerator.Schema; public class Test { public static void main(String[] args) { Schema schema = new Schema(1, "com.doris.greendaoeclipsedemo.dao"); // 学生 Entity student = schema.addEntity("Student"); // 参数首字母必须大写 student.addIdProperty(); // id student.addStringProperty("name"); // 姓名 student.addIntProperty("age"); // 性别 Property classId= student.addLongProperty("classId").getProperty(); Property cardId = student.addLongProperty("cardId").getProperty(); // 学生证 Entity card = schema.addEntity("Card"); card.addIdProperty(); card.addStringProperty("cardNumber"); // 证件号码 // 一对一 student.addToOne(card, cardId); // 班级 Entity clas = schema.addEntity("Clas"); clas.addIdProperty(); clas.addStringProperty("name"); // 一对多 student.addToOne(clas, classId); clas.addToMany(student, classId).setName("students"); try { new DaoGenerator().generateAll(schema, "../GreenDaoEclipseDemo/src"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
运行:
刷新项目:
4、基本的操作数据
// 增 private void insertStudent() { Student student = new Student(); student.setName("张三"); student.setAge(23); Card card = new Card(); card.setCardNumber("101"); cardDao.insert(card); // 查询班级是否存在 Clas clas = clasDao.queryBuilder().where(ClasDao.Properties.Name.eq("1")).unique(); if(clas == null ){ clas = new Clas(); clas.setName("1"); clasDao.insert(clas); } student.setCard(card); student.setClas(clas); studentDao.insert(student); } // 删 private void delete(Student student, Clas clas){ cardDao.delete(student.getCard()); studentDao.delete(student); for(Student student : clas.getStuents()){ cardDao.delete(student.getCard()); studentDao.delete(student); } clasDao.delete(clas); } // 改 public void updateStudent(Student studen) { student.setName("张三丰"); student.setAge(33); student.getCard().setCardNumber(100); cardDao.update(student.getCard()); // 查询班级是否存在 Clas clas = clasDao.queryBuilder().where(ClasDao.Properties.Name.eq("2")).unique(); if(clas == null ){ clas = new Clas(); clas.setName(studentClass); clasDao.insert(clas); }else{ clas.setName(studentClass); clasDao.update(clas); } student.setClas(clas); studentDao.update(student); } // 查所有 private void queryAll(){ List<Student> students = studentDao.queryBuilder().list(); List<Clas> classList = clasDao.queryBuilder().list(); List<Card> cards = cardDao.queryBuilder().list(); }
Android Studio:
1、新建Android项目 (GreenDaoStudioDemo)2、
3、新建Java Library (GreenDaoStudioDemoLibrary)
4、和2步骤一样,给GreenDaoStudioDemoLibrary添加依赖
5、GreenDaoStudioDemoLibrary
build.gradle
apply plugin: 'java' apply plugin: 'application' mainClassName = 'java.Test' dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile 'de.greenrobot:greendao-generator:2.1.0' }
com.example.Test.java
package com.example; import de.greenrobot.daogenerator.DaoGenerator; import de.greenrobot.daogenerator.Entity; import de.greenrobot.daogenerator.Property; import de.greenrobot.daogenerator.Schema; public class Test { public static void main(String[] args){ Schema schema = new Schema(1, "com.doris.greendaostudiodemo.dao"); // 学生 Entity student = schema.addEntity("Student"); // 参数首字母必须大写 student.addIdProperty(); // id student.addStringProperty("name"); // 姓名 student.addIntProperty("age"); // 性别 Property classId= student.addLongProperty("classId").getProperty(); Property cardId = student.addLongProperty("cardId").getProperty(); // 学生证 Entity card = schema.addEntity("Card"); card.addIdProperty(); card.addStringProperty("cardNumber"); // 证件号码 // 一对一 student.addToOne(card, cardId); // 班级 Entity clas = schema.addEntity("Clas"); clas.addIdProperty(); clas.addStringProperty("name"); // 一对多 student.addToOne(clas, classId); clas.addToMany(student, classId).setName("students"); try { new DaoGenerator().generateAll(schema,"app/src/main/java"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("ok"); } }
6、基本操作和eclipse差不多
查询:
方法 | 说明 |
---|---|
list() | 直接取数据并且缓存在内存中 |
listLazy() | 不直接取数据,使用的时候取,并且缓存在内存中,必须close |
listLazyUncached() | 不直接取数据,使用的时候取,必须close |
listIterator() | 不直接取数据,自己遍历,必须close |
条件查询:
1、eq:List<Student> students = studentDao.queryBuilder() .where(StudentDao.Properties.Name.eq("张三"))).list();
2、like:
List<Student> students = studentDao.queryBuilder().where(StudentDao.Properties.Name.like("%张%"))).list();
3、between:
List<Student> students = studentDao.queryBuilder().where(StudentDao.Properties.Age.between(20, 25)))).list();
4、> gt 和 < lt:
List<Student> students = studentDao.queryBuilder().where(StudentDao.Properties.Age.gt(20)list(); List<Student> students = studentDao.queryBuilder().where(StudentDao.Properties.Age.lt(25)list();
5、>= ge 和 <= le:
List<Student> students = studentDao.queryBuilder().where(StudentDao.Properties.Age.ge(20)list(); List<Student> students = studentDao.queryBuilder().where(StudentDao.Properties.Age.le(25)list();
7、排序
// 升序 List<Student> students = studentDao.queryBuilder().orderAsc(StudentDao.Properties.Age).list(); // 降序 List<Student> students = studentDao.queryBuilder().orderDesc(StudentDao.Properties.Age).list();
8、多线程:
final Query<Student> query = studentDao.queryBuilder().build(); new Thread(){ @Override public void run() { students = query.forCurrentThread().list(); } }.start();
……
SQL查询:
List<Student> students = studentDao.queryBuilder().where(new WhereCondition.StringCondition("CLASS_ID IN (SELECT _ID FROM CLAS WHERE NAME LIKE '%"+ studentClass + "%' )").list();
页面:
源码
相关文章推荐
- Android开源:数据库ORM框架GreenDao学习心得及使用总结
- Android开源:数据库ORM框架GreenDao学习心得及使用总结
- Android开源:数据库ORM框架GreenDao学习心得及使用总结
- greenDao_2.0.0学习笔记3-Hello World
- Android开源:数据库ORM框架GreenDao学习心得及使用总结
- android开发 greendao学习及使用笔记
- Android ORM-GreenDao学习之一基础篇
- greenDAO学习分享总结
- greenDao_2.0.0学习笔记2-特性
- 数据库ORM框架GreenDao学习心得及使用总结
- GreenDao 学习笔记 5
- 【转载】Android开源:数据库ORM框架GreenDao学习心得及使用总结
- Android 数据库ORM框架GreenDao学习心得及使用总结<二>
- GreenDao 学习笔记 7
- Android greenDAO 数据库 简单学习之基本使用
- Android开源:数据库ORM框架GreenDao学习心得及使用总结
- GreenDao 学习笔记 4
- Android ORM-GreenDao学习二之进阶篇
- Android开源:数据库ORM框架GreenDao学习心得及使用总结
- 学习GreenDao路上的经验总结