Android ORM 框架之 greenDAO 使用
2016-11-23 13:49
405 查看
1、在 .src/main 目录下新建一个与 java 同层级的「java-gen」目录,用于存放由 greenDAO 生成的 Bean、DAO、DaoMaster、DaoSession 等类。2.配置 Android 工程(app)的 build.gradle,分别添加 sourceSets 与dependencies。
sourceSets { main { java.srcDirs = ['src/main/java', 'src/main/java-gen'] } }
//greendao compile 'de.greenrobot:greendao:2.1.0' compile 'de.greenrobot:greendao-generator:2.1.0'3、通过 File -> New -> New Module -> Java Library -> 填写相应的包名与类名greendao -> Finish.4、配置 greendao 工程的 build.gradle,添加 dependencies.
compile 'de.greenrobot:greendao:2.1.0' compile 'de.greenrobot:greendao-generator:2.1.0'5、编辑greendao中的类CommuteWork:按照步骤1设置的路径,
com.example.commutingtime.db.greenBean应改成greenBean,
com.example.commutingtime.db.greenDao应改成greenDao,
app/src/main/java应改成app/src/main/java-gen
可以自由更改greenDao的输出目录,但在实际使用中为了方便我还是将greenBean和greenDao等生成在java目录下。
public class CommutingWork { public static void main(String[] args) throws Exception{ // 正如你所见的,你创建了一个用于添加实体(Entity)的模式(Schema)对象。 // 两个参数分别代表:数据库版本号与自动生成代码的包路径。 Schema schema = new Schema(1,"com.example.commutingtime.db.greenBean");//bean生成目录 schema.setDefaultJavaPackageDao("com.example.commutingtime.db.greenDao"); schema.setDefaultJavaPackageTest("com.example.commutingtime.db.greenDao"); schema.enableKeepSectionsByDefault(); addCommuting(schema); new DaoGenerator().generateAll(schema,"app/src/main/java"); } private static void addCommuting(Schema schema){
// 一个实体(类)就关联到数据库中的一张表,此处表名为「Commuting」(既类名) Entity bean = schema.addEntity("Commuting");
// 你也可以重新给表命名
// bean.setTableName("COMMUTING"); bean.addIdProperty().primaryKey().autoincrement(); bean.addStringProperty("date");//日期 bean.addStringProperty("workDate");//上班时间 bean.addStringProperty("outDate");//下班时间 bean.addStringProperty("commuting");//工作时间 bean.addStringProperty("overtime");//加班时间 bean.addIntProperty("month");//所属月份 } }
6.执行 generator 工程,如一切正常,你将会在控制台看到如下日志,并且在主工程「java-gen」或自定义的目录下会发现生成了DaoMaster、DaoSession、CommutingDao、Commuting共4个类文件。
7、官方推荐将取得DaoMaster对象的方法放到Application层这样避免多次创建生成Session对象,在Application实现得到DaoMaster和DaoSession的方法
public class MyAplication extends Application {private static DaoMaster daoMaster;private static DaoSession daoSession;public static SQLiteDatabase db;public static final String DB_NAME="commute.db";private static Context mContext;public static MyAplication instance;public static MyAplication getInstance(){if(null == instance){instance = new MyAplication();}return instance;}@Overridepublic void onCreate(){super.onCreate();mContext = getApplicationContext();getDaoMaster();}// **********greenDao相关****************start*******/** 获取daoMaster* */private static DaoMaster getDaoMaster(){if(daoMaster == null){DaoMaster.OpenHelper helper = new DaoMaster.DevOpenHelper(mContext,DB_NAME,null);daoMaster = new DaoMaster(helper.getWritableDatabase());}return daoMaster;}/** 获取DaoSession* */public static DaoSession getDaoSession(){if(daoSession == null){if (daoMaster == null){daoMaster = getDaoMaster();}daoSession = daoMaster.newSession();}return daoSession;}// **********greenDao相关****************end*******}通过 DaoMaster 的内部类 DevOpenHelper,你可以得到一个便利的 SQLiteOpenHelper 对象,并不需要去编写「CREATE TABLE」这样的 SQL 语句,因为 greenDAO 已经帮你做了。
注意:默认的 DaoMaster.DevOpenHelper 会在数据库升级时,删除所有的表,意味着这将导致数据的丢失。所以,在正式的项目中,你还应该做一层封装,来实现数据库的安全升级。
在operateDao.java中的使用:
public long insert(Commuting commuting){return MyAplication.getDaoSession().getCommutingDao().insert(commuting);// ContentValues newValues = new ContentValues();// newValues.put(DBOpenHelper.KEY_DATE,commuting.getDate());// newValues.put(DBOpenHelper.KEY_WORK_DATE,commuting.getWorkDate());// newValues.put(DBOpenHelper.KEY_OUT_DATE,commuting.getOutDate());// newValues.put(DBOpenHelper.KEY_COMMUTING,commuting.getCommuting());// newValues.put(DBOpenHelper.KEY_OVERTIME,commuting.getOvertime());// return db.insert(DBOpenHelper.DB_TABLE,null,newValues);}
相关文章推荐
- Android ORM 框架之 greenDAO 使用心得
- Android ORM 框架之 greenDAO 使用心得
- Android ORM 框架之 greenDAO 使用
- Android ORM 框架之 greenDAO 使用心得
- Android ORM 框架之 greenDAO 使用心得
- Android ORM 框架之 greenDAO 使用心得
- Android ORM 框架之 greenDAO 使用心得
- Android ORM 框架之 greenDAO 使用心得
- Android ORM 框架之 greenDAO 使用心得
- Android ORM 框架之 greenDAO 使用心得
- Android ORM 框架之 greenDAO 使用心得
- Android ORM 框架之 greenDAO 使用心得
- Android ORM 框架之 greenDAO 使用心得
- Android ORM 框架之 greenDAO 使用心得
- Android ORM 框架之 greenDAO 使用心得
- Android ORM——初识greenDAO 3及使用greenDAO 3前应该掌握的一些知识点(一)
- Android框架之ormlite的使用
- 【android】ORMLite框架 的使用方法---给你的数据库操作插上翅膀
- 从无到有看文档-----Android中ORMLite框架入门使用指南(为了小白)
- Android 数据库框架ormlite 使用精要