Android Studio配置greenDao框架详解--说说那些坑
来源:互联网 发布:网络电视能连手机吗 编辑:程序博客网 时间:2024/06/04 01:35
“我相信,在平时的开发过程中,大家一定会或多或少地接触到 SQLite。然而在使用它时,我们往往需要做许多额外的工作,像编写 SQL 语句与解析查询结果等。所以,适用于 Android 的ORM 框架也就孕育而生了,现在市面上主流的框架有 OrmLite、SugarORM、Active Android、Realm 与 GreenDAO。而今天的主角便是 greenDAO,下面,我将详解地介绍如何在 Android Studio 上使用 greenDAO,并结合代码总结一些使用过程中的心得。”
一端介绍,我不重复了,都是废话。你既然搜greendao怎么用,肯定知道它是什么,不了解的可以看看这儿的解释,具体的操作还是看我的吧,我会告诉你那些坑。
废话不多说,搞起。
github地址:https://github.com/greenrobot/greenDAO
一、新建项目,在 app/src/main 目录下新建一个与 java 同层级的「java-gen」目录,用于存放由 greenDAO 生成的 Bean、DAO、DaoMaster、DaoSession 等类,在main目录上右键选择new -> Directory创建即可。【声明,此处的java-gen目录名,也可以随便写,附例为证】。
配置当前module下的build.gradle文件:
android { 。。。。。 sourceSets { main { java.srcDirs = ['src/main/java', 'src/main/<span style="color: rgb(64, 64, 64); font-family: "Microsoft YaHei", Verdana, sans-serif, SimSun; font-size: 16px; line-height: 28.8px;">java-gen</span>'] } }}
<pre name="code" class="html">dependencies { ..... compile 'de.greenrobot:greendao:2.1.0'}这部分配置完成。
二、右键点击project名,新建module, 选择java library,即创建一个纯java项目。包名和类名无所谓。不过类名最好写成xxxDaoGenerator,我的习惯。配置这个module的build.gradle依赖:
dependencies { 。。。。。 compile 'de.greenrobot:greendao-generator:2.1.0'}
接下来编写刚才生成的xxxDaoGenerator.java类,在这个里面定义数据库和表结构:
public class DkDaoGenerator { public static final int DB_VERSION = 1; public static final String PACKAGE_NAME = "com.znke.greendao_test";//duke_greendao里面的不包名 public static final String JAVA_SOURCE = "./app/src/main/duke_greendao"; public static final String CLASS_NAME_MESSAGE = "Message";//生成消息类名 public static final String TABLE_NAME_MESSAGE = "tbl_message";// 消息表名 public static final String TITLE = "title"; public static final String CONTENT = "content"; public static final String CREATE_TIME = "create_time"; public static void main(String args[]) throws Exception { //创建一个模板类 Schema schema = new Schema(DB_VERSION, PACKAGE_NAME); // schema.enableActiveEntitiesByDefault(); schema.enableKeepSectionsByDefault(); createTableMessage(schema); //new DaoGenerator().generateAll(schema, args[0]); //生成对应的类和数据库,此处注意JAVA_SOURCE路径,为什么是这个,你可以用 ./ 代替试试看在哪里 new DaoGenerator().generateAll(schema, JAVA_SOURCE); } /** * 这里等于网数据库里添加了一张表,设置各个字段,很好理解 * @param schema */ private static void createTableMessage(Schema schema) { if (schema == null) { return; } Entity message = schema.addEntity(CLASS_NAME_MESSAGE); message.setTableName(TABLE_NAME_MESSAGE); message.addIdProperty().primaryKey().autoincrement(); message.addStringProperty(TITLE); message.addStringProperty(CONTENT); message.addDateProperty(CREATE_TIME).notNull(); }}
运行时如果报错,可能是中文注释的问题,删除中文部分。接下来单独运行这个java项目,因为这有个main入口。当时我弄的是后,参考了网上的文章,就是不知道怎么运行,特说明【就在xxxDaoGenerator类文件打开的界面里面,右键选择Run "xxxDaoGenerator... main()"选项】。
运行完毕后下方会出现打印控制台,如果没有报错,即搞定。【普通的java代码也可这样在此运行。】
运行后生成的代码在app/src/main/java-gen中,这个里面的package名是在xxxDaoGenerator里面设置的,阅读我的demo吧。
好了这个纯java的项目可以忽略了,放一边去,但是不要删除了,方式以后需要修改数据库的结构。这个纯java项目和app等其他的android module不需要有依赖关联,独立的。
三、使用。
我们忘掉刚下的纯java工程module,回到app module下面来,看看java-gen下面生成了什么,bean,dao,session等,怎么使用呢?java-gen下面的代码使生成的,别去修改。
我们常见一个application类,初始化一次数据库,只需要创建一个session实例,暴露给其他的使用处即可:
public DaoSession daoSession; @Override public void onCreate() { super.onCreate(); initDatabase(); } public void initDatabase() { DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, DATABASE_NAME, null); SQLiteDatabase db = helper.getWritableDatabase(); // 注意:该数据库连接属于 DaoMaster,所以多个 Session 指的是相同的数据库连接。 DaoMaster daoMaster = new DaoMaster(db); daoSession = daoMaster.newSession(); }
在其他的使用出:
messageDao = ((MyApplication) getApplication()).daoSession.getMessageDao();
// 插入操作,简单到只要你创建一个 Java 对象Message message = new Message(null, title, content, new Date());messageDao.insertOrReplace(message);//添加或修改
添加或者修改的方法搞定了。也就是初始化得到一个session实例,从session实例里面获取到我的MessageDao数据操作类,来对Message对象做增删改查,学过java EE开发会hibernate框架的同学很容易理解。
这个messageDao里面还有很多其他的增删改查api:
自己去了解一下吧。
搞定,大概的配置和使用就这些。
demo下载
- Android Studio配置greenDao框架详解--说说那些坑
- Android Studio配置Android Annotations框架详解--说说那些坑
- Android studio配置使用GreenDao
- Android Studio中配置GreenDAO
- Android studio使用greendao作为数据库框架
- Android SQLite ORM框架greenDAO在Android Studio中的配置与使用
- GreenDao 在 Android Studio 中的配置使用
- 在android studio中配置GreenDao
- Android Studio 配置 greendao 3.1.1
- Android Studio中 GreenDao 基本配置
- 关于GreenDao数据库框架在android studio上的相关配置和使用
- GreenDao框架入门及基础使用(Android studio 完整配置)
- Android ORM 框架:GreenDao 使用详解
- Android数据库框架GreenDao使用详解
- Android studio中使用greenDao开源框架
- Android studio,使用greenDao第三方数据库框架操作数据库
- Android studio使用greenDao
- Android Studio 导入 GreenDao
- 知道一个IP地址,如何计算出它的子网掩码啊?
- 索引的访问-SQL Server
- tomcat源码解析(二)--web.xml文件的解析
- 使用p6spy 2监控及打印Spring 4 JdbcTemplate生成的SQL语句
- HTML学习笔记(上)
- Android Studio配置greenDao框架详解--说说那些坑
- Android开发中内存泄露与优化
- Leetcode Contains Duplicate II
- Content-Encoding与Content-Type的区别
- android 6.0 以后 WebView改动
- Quiz 6b_question#7
- ajax(一)
- Linux学习练习之实现小shell
- SpringMVC学习系列(4) 之 数据绑定-1