GreenDao的简单使用说明(一)android studio中引入GreenDao
GreenDao是现在大家评论说在android开发中,数据库框架效率最好的一个.以前一直在使用原生的,虽然感觉什么自己都可以控制,可是写起来,改起来有点恶心,所以正好借个机会,来使用一下GreenDao.我使用的开发工具是android studio.
GreenDao说实话,它在引入的时候有点恶心,不像别的第三方框架,只要引入一个compile 'XX.XXX.1.0'这样,就可以使用了,它不行.所以今天我就把在android studio中如何引入做一个记录.
我们先去https://github.com/SureCase/GreenDaoForAndroidStudio上把下载它的代码.
然后我们开始进行配置
1, 在/app/src/main/下建立文件夹java-gen,这个文件夹是与java平级的,当然了.我使用的是project视图.如下图:
为什么要起一个名字叫java-gen的文件夹名呢.这里我们留一个疑问,一会就会知道了
2, 打开app文件夹下的build.gradle文件,在里面添加
sourceSets {
main {
java.srcDirs = ['src/main/java', 'src/main/java-gen']
}
}
这句话的意思就是把java-gen文件夹下的java文件也归入srcDir中,这是因为GreenDao的逻辑是通过其提供的一套java se代码配置后自动在java-gen生成对应的文件,DaoMaster.java,DaoSession.java,**DAO.java这三个文件,我们在程序中主要是调用这里面的类来操作数据库的.
现在有点明白为什么我们要建一个叫java-gen的文件夹了吧,后面我们还会看到.
3,还是在这个build.gradle文件里,引入dependencies
dependencies {
compile 'de.greenrobot:greendao:1.3.7'
}
build.gradle文件如下图:
OK,基础配置已经完成了,不要以为这样你就可以使用了,这是不可能的,我们刚才说了,它需要运行它的java se文件来生成三个java文件的,还记得一开始我们下载的文件吗,好的解压它,找到里面的MyDaoGenerator文件夹,它把复制到工程当中,位置就是根目录下,它要与app文件夹是同级的.如下图:
复制完成之后,我们要把MyDaoGenerator include到工程当中,打开根目录下面的setting.gradle文件,在里面添加上':MyDaoGenerator ',如下图:
这些设置完成之后,我们就要设置MyDaoGenerator文件夹里面的build.gradle文件了,要为它设置一下输出路径,还记得java-gen吗,这个文件夹的名字,就是在这里设置的,我们使用了系统默认给出的,主要是为了别人看着方便,自己也方便,修改代码如下:
def outputDir = "../app/src/main/java-gen"
整体代码:如图
看到了吧,它给的例子里面,没有def,如果不加这个,编译会一直出错,上网查了一下,才发现是这里的问题,坑爹啊.
OK,到了这里,我们的配置算是配置完了,整个GreenDao框架的环境算是架上了.不对吧,这里好像少了点什么,对的,三个文件还没有呢,而且java-gen文件夹还是空的,这怎么用啊.下面我们先来生成一下这三个文件.
1, 在MyDaoGenerator中,/src/main/java/pl.surecase.eu中打开MyDaoGenerator.java文件,我们在这里修改一下,
public class MyDaoGenerator {public static void main(String args[]) throws Exception {//初始化一下数据库//第一个参数是版本号,第二个参数是为你生成的bean类放的文件夹名Schema schema = new Schema(1, "greendao");//设置一下生成的三个java文件的目录schema.setDefaultJavaPackageDao("com.guangda.dao");//建立一个表Entity userBean = schema.addEntity("Users");//此行可有可无,就是对表进行重命名userBean.setTableName("Users");//此行被注,因为加上引行,下面的字段总会少一个.不知道为什么//userBean.addLongProperty("id").primaryKey().index().autoincrement();//建立自增的主键userBean.addIdProperty();userBean.addStringProperty("uSex");userBean.addStringProperty("uTelphone");userBean.addStringProperty("uAge");userBean.addStringProperty("uName");new DaoGenerator().generateAll(schema, args[0]);}}
在这里说明一点,如果我们要对数据库里面的表字段进行修改,只要将版本号,改高一级,然后在
new DaoGenerator().generateAll(schema, args[0]);前面再加上新字段再重新生成一下就OK了.
好,设置完这个,让我们来生成一个吧.
选择Gradle面板,点上面的刷新按钮,将工程刷新出来,然后选择:MyDaoGenerator->Tasks->application双击下面的run.
如下图:
等运行完了,就会发现在java-gen文件夹下已经生成了所需求的代码.
如下图:
OK了,到此GreenDao在android studio中的配置算是设置好了.下一节,我们来看一下,如何使用它.
GreenDao的简单使用说明(一)android studio中引入GreenDao相关推荐
- Android Studio中引入RecyclerView的v7包
本文转载自[http://blog.csdn.net/a10615/article/details/51268022] 一直知道RecyclerView可以代替ListView.GridView使用, ...
- 在 Android Studio 中创建一个简单的 QQ 登录界面
一,创建一个新的 Android Studio 项目 打开 Android Studio,选择 "Start a new Android Studio project",然后填写应 ...
- 【Android开发】Android Studio中进行简单的WebView构建浏览器开发1
[Android开发]Android Studio中进行简单的WebView构建浏览器开发 第一步:新建一个Android Project 第二步:修改AndroidMainfest.xml文件 第三 ...
- 【Android开发】Android Studio中进行简单的WebView构建浏览器开发2
[[Android开发]Android Studio中进行简单的WebView构建浏览器开发2 第1步:在上一篇博客的基础上,修改activity_main.xml 第2步:在MainActivity ...
- Android开发——Android Studio中配置及使用OpenCV示例
from: http://www.mobile-open.com/2015/86176.html 本文主要讲述了Android Studio中配置及使用OpenCV示例,现在整理出来分享给Androi ...
- Android如何使用so文件和Android studio中导入so
Android中使用so文件: 做一个PDF阅读的功能,找到一个开源的库,mupdf.下载的是网上编译好的so库,导入到自己项目中的时候一直报错Java.lang.UnsatisfiedLinkErr ...
- Android NDK开发之旅(2):一篇文章搞定Android Studio中使用CMake进行NDK/JNI开发
Android NDK开发之旅(2):一篇文章搞定android Studio中使用CMake进行NDK/JNI开发 (码字不易,转载请声明出处:http://blog.csdn.NET/andrex ...
- android studio annotations,AndroidAnnotations在Android Studio中的配置
AndroidAnnotations是一款功能很强大的注解框架,具体使用我就不介绍了,大家可以自行百度了解.在eclipse的配置也比较简单,但是在android studio中的配置好像 Andro ...
- Android Studio中ButterKnife插件的安装与使用
此文章来自http://www.jianshu.com/p/fe3c20f3ac27点击打开链接 Android Studio中ButterKnife插件的安装与使用 最近用到Android Butt ...
最新文章
- Deployment详解
- 浏览器左上角的小图标怎么整不掉_Honeyview:蜂蜜浏览器
- 机器学习实验中的编程技术(part4)--模型持久化
- BTrace for Java应用程序简介
- 26-- 转换成小写字母
- thinkphp mysql高并发_WBB - ThinkPhp高并发提交如何保障数据正常
- 2022年推出?特斯拉人形机器人被批就是个笑话
- java 多线程 信号量_Java核心-多线程(7)-并发控制器-Semaphore信号量
- linux看磁盘空间du df,df与du查看磁盘空间使用不一致的解决方法
- pandas.iloc, pandas.loc用法
- Skyline软件二次开发初级——4如何在WEB页面中的三维地图上使用弹出框Popups
- mysql取值范围1-10_mysql各种数据类型取值范围
- html 图片滑动验证码,html+jQuery实现拖动滑块图片拼图验证码插件【移动端适用】...
- win10创建局域网服务器
- RuntimeError: The size of tensor a (22) must match the size of tensor b (32) at non-singleton dimens
- 惊爆:普通人也能监听你MSN聊天(转)
- python函数之enumerate()快速打印出列表中的元素以及对应的下标
- PS通道高反差保留计算人物磨皮技巧
- 软件分类(自由软件、开放源代码软件、公共软件......)
- CAJ文献如何转成PDF?免费全篇转换的方法