ORM框架greenDao 2 (用于了解旧版本的使用方法,目前最新版本为3.2.2,使用注释的方式来生成)...
人生就是一連串的抉擇,每個人的前途與命運,完全把握在自己手中,只要努力,終會有成。就業也好,擇業也罷,創業亦如此,不要活在別人的嘴里,不要活在別人的眼里,而是把命運握在自己手里。
在了解greenDao之前首要知道什么是SQLite,什么是ORM?
SQLite是一款輕量級嵌入式關系型數據庫,也是移動端最為常用的一種關系型數據庫。
ORM對象關系映射,簡單一點說就是實現數據庫表結構與對象一一對印。
greenDao簡介
官網解釋:greenDAO: Android ORM for your SQLite database。
greenDAO是Android中對SQLite進行對象關系映射的一個框架。
greenDao之所以很流行,跟它的優點是息息相關的:
- 一個精簡的庫
- 性能最大化
- 內存開銷最小化
- 易于使用的 API
- 對 Android 進行高度優化
Android中ORM框架有很多,如OrmLite,ActiveAndroid等,但是相對而言,greenDao性能更加優秀。
greenDao-Generator2使用
在使用greenDao之前要生成相應的表,Bean,Dao文件等,這個生成過程可以利用Eclipse/MyEclipse/Android Studio等相關工具來實現。
如果使用Eclipse/MyEclipse實現,需要添加greendao-generator:2.1.0和freemaker兩個jar。
如果使用Android Studio實現,只要在創建的Java Module中添加greendao-generator:2.1.0即可。
下面將以Android Studio為例,實現這一功能。
配置:首先創建一個Android工程,然后添加一個Module(Java Library),最后在Module的build.gradle文件中中添加greendao-generator:2.1.0依賴。
dependencies {compile fileTree(include: ['*.jar'], dir: 'libs')compile 'de.greenrobot:greendao-generator:2.1.0' }使用:greendao-generator是用來生成相應的表,Bean,Dao文件等。假如要生成一個用戶表,一個朋友表,一個用戶可以有多個朋友,一個朋友數據最多對應一個用戶,那么該如何實現呢?
public class ZGenerator {public static void main(String args[]) { // 創建一個模式Shcema // 參數1-版本,參數2-包名 Schema schema = new Schema(1, "cc.ibooker.daogenerator"); // 添加Entity-相當于表-用戶對象 // 參數-代表生成對象類名 Entity user = schema.addEntity("User"); user.addIdProperty().autoincrement();// 添加ID-自增 user.addLongProperty("uId"); user.addStringProperty("uRealname"); user.addStringProperty("uSex"); user.addStringProperty("uBirthday"); user.addFloatProperty("uHeight"); user.addFloatProperty("uWeight"); user.addStringProperty("uDomicile"); user.addLongProperty("uPhone"); user.addStringProperty("uEmail"); user.addStringProperty("uWeibo"); // 朋友表/對象 Entity friend = schema.addEntity("Friend"); friend.addIdProperty().autoincrement();// 添加ID-自增 friend.addStringProperty("fGname"); // 添加外鍵-只能關聯User主鍵 Property fUid = friend.addLongProperty("fUid").getProperty(); friend.addToOne(user, fUid);// 一對一 user.addToMany(friend, fUid).setName("friends");// 一對多 // 生成相關文件 try { // 參數1-schema,參數2-生成路徑 new DaoGenerator().generateAll(schema, "app/src/main/java"); } catch (Exception e) { e.printStackTrace(); } } }1、創建Schema(設置模式)
/*** @param version 版本號-可以理解為數據庫版本號* @param defaultJavaPackage 默認包名-即文件生成路徑**/ Schema schema = new Schema(int version, String defaultJavaPackage);2、添加表對象
/*** @param className 生成Bean文件的類名**/ Entity entity = schema.addEntity(String className); // 添加主鍵-并實現主鍵自增 entity.addIdProperty().autoincrement(); // 添加字段名-根據添加類型進行設置 entity.addStringProperty(String propertyName); entity.addLongProperty(String propertyName);添加外鍵-只能關聯主鍵
// 添加外鍵-只能關聯User主鍵 Property property = entity.addLongProperty(String propertyName).getProperty();一對一關聯
/*** @param target 目標表對象(關聯對象)* @param fkProperty 外鍵**/ entity.addToOne(Entity target, Property fkProperty);一對多關聯
/*** @param target 目標表對象(關聯對象)* @param fkProperty 外鍵**/ ToMany tomany = entity.addToMany(Entity target, Property fkProperty); // 設置外鍵對象名稱 tomany.setName(String name);3、編譯執行
try {// 參數1-schema,參數2-生成根路徑new DaoGenerator().generateAll(schema, "app/src/main/java"); } catch (Exception e) { e.printStackTrace(); }greenDao2使用
配置:在build.gradle(app)中加入greendao:2.1.0依賴。
dependencies {compile 'de.greenrobot:greendao:2.1.0' }使用:greendao:2.1.0主要是用來操作數據庫,而對于數據庫的操作主要是增刪改查。
在實現數據庫增刪改查之前必須對相關Dao文件進行實例化,那么該如何進行實例化呢?
對Dao對象進行實例化之后,就可以通過相關Dao來操作相關表。
1、插入數據-GreenDao可以實現單一對象插入和批量插入功能。
- 插入一條數據
- 批量插入數據
2、修改數據-GreenDao可以實現單一對象修改和批量修改功能。
- 修改一條數據
- 批量修改數據
3、刪除數據
- 刪除一條數據
- 根據主鍵ID刪除數據
- 批量刪除數據
- 刪除所有數據
4、查詢數據
- 查詢所有數據-三種方式
- 懶加載-記得使用完之后關閉掉close
- 條件查詢
- 原生SQL查詢
- 線程查詢
- 一對一查詢
- 一對多查詢
greenDao提供了很多方法,這里只是寫了一些常用方法。
GitHub地址
轉載于:https://www.cnblogs.com/Free-Thinker/p/9887718.html
總結
以上是生活随笔為你收集整理的ORM框架greenDao 2 (用于了解旧版本的使用方法,目前最新版本为3.2.2,使用注释的方式来生成)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: eureka-7-多网卡下的ip选择
- 下一篇: django组件 分页器