@cxm-2016
2016-08-04T16:13:59.000000Z
字数 1964
阅读 2031
GreenDAO
no
作者:陈小默
1,在 .src/main 目录下新建一个与 java 同层级的「java-gen」目录,用于存放由 greenDAO 生成的 Bean、DAO、DaoMaster、DaoSession 等类。
2,配置 Android 工程(app)的 build.gradle
添加
android{
sourceSets {
main {
java.srcDirs = ['src/main/java', 'src/main/java-gen']
}
}
}
使用gradle自行添加de.greenrobot:greendao:最新版本。
1,使用gradle自行添加org.greenrobot:greendao-generator:最新版本
2,创建一个类,在main方法中创建数据库和数据表:
package com.doservlet
import org.greenrobot.greendao.generator.DaoGenerator
import org.greenrobot.greendao.generator.Schema
class MyGenerator
fun main(args: Array<String>) {
val schema = Schema(1, "com.cxm.bean")
//下面这句话指定了到文件的存放位置,不设置的话默认情况同上
schema.defaultJavaPackageDao = "com.cxm.dao"
//这里创建了一个一张数据表,后续执行创建表的操作
val note = schema.addEntity("Note")
note.addIdProperty()
note.addStringProperty("name").notNull()
note.addDateProperty("birth").notNull()
//以下操作寻找存放bean的目录
var path = MyGenerator::class.java.getResource(".").getPath()
path = path.substring(0, path.lastIndexOf("mydaogenerator/build/classes/main/com/doservlet/"))
path += "app/src/main/java-gen"
//将创建好的Bean以及Dao文件存放到相应的目录
DaoGenerator().generateAll(schema, path)
}
3,执行main方法,你会在主工程「java-gen」下发现生成了DaoMaster、DaoSession、NoteDao、Note共4个类文件。
1,创建数据库控制器(建议使用单例)
val helper = DaoMaster.DevOpenHelper(context, "db-name", null)
val db = helper.writableDatabase
var daoMaster = DaoMaster(db)
2,获得session(数据库连接)
var daoSession = daoMaster?.newSession()
3,插入数据
val note = Note(null, "Hello", Date())
daoSession?.noteDao?.insert(note)
4,删除数据
val note = Note(null, "Hello", null)
//删除姓名为Hello的数据
daoSession?.noteDao?.delete(note)
//删除ID为3的用户数据
daoSession?.noteDao?.deleteByKey(3)
5,查询数据
val list: MutableList<Note>? = daoSession?.noteDao?.queryBuilder()?.
where(NoteDao.Properties.Name.eq("Hello"))?.
build()?.list()
6,更新数据
val list: MutableList<Note>? = daoSession?.noteDao?.queryBuilder()?.where(NoteDao.Properties.Name.eq("Hello"))?.build()?.list()
if (list != null) for (n in list) {
n.name = "World"
daoSession?.update(n)
}