您的位置:首页 > 其它

GreenDao

2017-01-20 00:00 134 查看

1.先添加依赖

第一步:在app的Build.gradle中添加如下配置:

apply plugin: 'org.greenrobot.greendao'
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
greendao{
schemaVersion 1
daoPackage 'com.admom.mygreendaotest.gen'
targetGenDir 'src/main/java'
}
//schemaVersion: 数据库schema版本,也可以理解为数据库版本号
//daoPackage:设置DaoMaster、DaoSession、Dao包名
//targetGenDir:设置DaoMaster、DaoSession、Dao目录
//targetGenDirTest:设置生成单元测试目录
//generateTests:设置自动生成单元测试用例

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:24.2.1'
testCompile 'junit:junit:4.12'

compile 'org.greenrobot:greendao:3.2.0'
}

在工程的Build.gradle中添加如下配置:

buildscript {
repositories {
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.0'
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.0'
}
}

###2. 写一个实体类,点击绿色的锤子按钮,编译生成DaoMaster、DaoSeesion、ShopDao

例如:

@Entity
public class shop{
@Id
private Long id;//注意id主键必须用Long类型
private String name;
}

3.在MyApplication初始化GreenDao

public class MyApplication extends Application {

private DaoMaster.DevOpenHelper mHelper;
private SQLiteDatabase db;
private DaoMaster daoMaster;
private DaoSession daoSession;

public static MyApplication instances;

@Override
public void onCreate() {
super.onCreate();
instances = this;
setDataBase();
}

public static MyApplication getInstances(){
return instances;
}

private void setDataBase() {
mHelper = new DaoMaster.DevOpenHelper(this,"notes-db",null);
db = mHelper.getWritableDatabase();
daoMaster = new DaoMaster(db);
daoSession = daoMaster.newSession();
}

public DaoSession getDaoSession(){
return daoSession;
}

public SQLiteDatabase getDb(){
return db;
}

}

4.调用数据库的语句

private void searchData() {
List<Shop> shops = shopDao.loadAll();
String name = "";
for (Shop s : shops) {
name = s.getName() + ";";
}
result.setText(name);
}

private void updataData() {
shop = new Shop((long) 22, "aaa");
shopDao.update(shop);
}

private void deleteData() {
shopDao.deleteByKey((long) 1);
}

private void addData() {
shop = new Shop((long) 1, "sss");
shopDao.insert(shop);
}

注解

@Entity                 实体注解
@NotNull              设置表中的当前列的值不为空
@Convert             制定自定义类型
@Generated        GreenDao运行所产生的构造函数或者方法,被此标注的代码可以更新或者下次运行时清除
@Id                       主键Long型,可以通过@Id(autoincrement = true)设置自增长,通过这个注解标记的字段必 须是long,数据库中表示它就是主键,并且默认为自增长
@Index                 使用@Index作为一个属性累创建一个索引,定义多列索引(@Iink Entity#indexes())
@JoinEntity         定义表连接关系
@JoinProperty    定义名称和引用名称属性关系
@Keep                 注解的代码在GreenDao下运行时保持不变
1.注解实体类:默认禁止修改此类
2.注解其他代码,默认禁止修改注解的代码段
@Order                制定排序
@Property           设置一个非默认关系映射所对应的列名,默认使用的字段名。
例:@Property(nameInDb="name")
@ToMany            定义多个实体对应的关系
@ToOne              定义与另一个实体(一个实体对象)的关系
@Transient          添加该标记之后不会生成数据库表的列
@Unique              向数据库列添加一个唯一的约束
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Greendao