转载请注明出处:王亟亟的大牛之路
话不多说先安利:https://github.com/ddwhan0123/Useful-Open-Source-Android 一直在加新东西,你值得拥有
这几天忙的1B,这里跑那里跑,写的Demo就是没时间发帖,昨天10来点到家然后 弄鱼 弄麦麦啥的再敲敲代码就1点了,早上起来困的1B。。。。
OK,先来说下为什么写这篇文章。
上周面试,一个面试官问了一堆,答得还不错,然后聊到数据库,我说我之前用sql直接写,然后他一脸闷B说了句好吧。。。然后我应该去学个第三方的ORM,所以就写了这个Demo,这篇博文
greenDAO是什么我就不多罗嗦了,google/莆田(百度) 都有一堆,这里给出几个比较好的给大家
http://www.jianshu.com/p/c4e9288d2ce6
http://greenrobot.org/greendao/
来看下我们的项目结构
用到的库如下:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.android.support:recyclerview-v7:23.4.0'
apt 'com.jakewharton:butterknife-compiler:8.1.0'
compile 'org.greenrobot:greendao:2.2.1'
compile 'com.jakewharton:butterknife:8.1.0'
compile 'com.apkfuns.logutils:library:1.4.2'
compile 'io.reactivex:rxjava:1.1.5'
compile 'io.reactivex:rxandroid:1.2.0'
}
因为这部分和其他开源库 还是有点使用的小区别,我这边还是照搬下如何构建项目(隔壁搬来的)
1.首先开个项目
2.然后在.src/main下java目录同级的地方新建个目录叫java-gen
3.开完之后在build.gradle的sourceSets节点复制以下内容
main {
java.srcDirs = ['src/main/java', 'src/main/java-gen']
}
当然记得把前面那一堆依赖里 greenDAO相关的先build下不然 不能成
4.接下来再建我们的依赖java Module(用于创建对象和DAO代码)
5.然后在那个项目里加上generator所需的依赖,像这样
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'org.greenrobot:greendao-generator:2.2.0'
}
6.然后在这个JAVA 项目里创建一个类,叫什么随你,喜欢就好。
这里贴下具体的代码
public class DemoClass {
public static void main(String[] asa) {
Schema schema = new Schema(1, "com.example");
addPerson(schema);
try {
new DaoGenerator().generateAll(schema, "/Users/jiajiewang/Desktop/SQLDemo/app/src/main/java-gen");
} catch (Exception e) {
e.printStackTrace();
}
}
public static void addPerson(Schema schema) {
Entity entity = schema.addEntity("Person");
entity.addIdProperty();
entity.addStringProperty("Name").notNull();
entity.addStringProperty("Age").notNull();
entity.addStringProperty("Address");
}
}
这里有一个Main方法,一个addPerson
这里我们先声明了一个模式对象,传入2个参数 1个是数据库版本号,1个是生成代码的路径,这个路径就是前面我们java-gen的路径(可能在运行前并没有这个路径,但是运行后就自动生成了)
然后我们再给这个模式对象构建实体,这个实体其实就是我们数据库字段所对应的对象实体。(greenD