数据库配置及简单使用

一、在Project的build.gradle中配置classpath

dependencies {

     //   classpath 'com.android.tools.build:gradle:3.0.0'

        classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin

        // NOTE: Do not place your application dependencies here; they belong

        // in the individual module build.gradle files

    }

二、在model中的build.gradle中配置

1、配置apply

//apply plugin: 'com.android.application'

apply plugin: 'org.greenrobot.greendao' // apply plugin

2、添加依赖

compile 'org.greenrobot:greendao:3.2.2' // add library

3、配置数据库版本以及代码生成位置

android {

greendao {

schemaVersion 1  //数据库的版本

daoPackage 'com.example.administrator.greendaodemo_h1709b.dao' // 一般为app包名+生成文件的文件夹名   文件生成的具体目录

targetGenDir 'src/main/java' //生成文件路径

}

}

4、sync now

以上几步实现数据库的配置,下面是数据库的简单实用介绍

写实体类:https://blog.csdn.net/zhjianglin/article/details/78773028

@Entity:设置表名,默认类名为表名

@Id:设置主键 @Id(autoincrement = true)设置自增长

@Property(nameInDb = "name")设置成员变量对应表中字段的名称

@NotNull//不能为空

@Unique//唯一约束

@Transient//成员变量不生成表字段

@Convert:指定自定义类型(@link PropertyConverter)   如果成员变量是集合,可以使用这个

@Generated:实体类的构造方法上使用,不自己调用,会自动生成

@Index:使用@Index作为一个属性来创建一个索引;定义多列索引(@link Entity#indexes())  //TODO 如何使用

@JoinEntity:定义表连接关系

@JoinProperty:定义名称和引用名称属性关系

@Keep:注解的代码段在GreenDao下次运行时保持不变

          1.注解实体类:默认禁止修改此类

          2.注解其他代码段,默认禁止修改注解的代码段

@OrderBy:

* 通过逗号间隔创建表的属性索引,例如 “propertyA,propertyB,propertyC” 

* 若要指定排序, 需在列明以后添加 ASC(升序) 或者DESC(降序) ,  例如 "propertyA DESC, propertyB ASC" 

*  默认按升序排序 

*  若不设置默认根据主键排序 

@ToMany:定义与多个实体对象的关系

@ToOne:定义与另一个实体(一个实体对象)的关系

AbstractDao:

  

  

long    count():获取数据库中数据的数量  

  

// 数据删除相关  

void    delete(T entity):从数据库中删除给定的实体  

void    deleteAll() :删除数据库中全部数据  

void    deleteByKey(K key):从数据库中删除给定Key所对应的实体  

void    deleteByKeyInTx(java.lang.Iterable keys):使用事务操作删除数据库中给定的所有key所对应的实体  

void    deleteByKeyInTx(K... keys):使用事务操作删除数据库中给定的所有key所对应的实体  

void    deleteInTx(java.lang.Iterable entities):使用事务操作删除数据库中给定实体集合中的实体  

void    deleteInTx(T... entities):使用事务操作删除数据库中给定的实体  

  

// 数据插入相关  

long    insert(T entity):将给定的实体插入数据库  

void    insertInTx(java.lang.Iterable entities):使用事务操作,将给定的实体集合插入数据库  

void    insertInTx(java.lang.Iterable entities, boolean setPrimaryKey):使用事务操作,将给定的实体集合插入数据库,  

                                                                                                                并设置是否设定主键  

void    insertInTx(T... entities):将给定的实体插入数据库  

long    insertOrReplace(T entity):将给定的实体插入数据库,若此实体类存在,则覆盖  

void    insertOrReplaceInTx(java.lang.Iterable entities):使用事务操作,将给定的实体插入数据库,若此实体类存在,则覆盖  

void    insertOrReplaceInTx(java.lang.Iterable entities, boolean setPrimaryKey):使用事务操作,将给定的实体插入数据库,若此实体类存在,则覆盖  

                                                                                                                            并设置是否设定主键  

void    insertOrReplaceInTx(T... entities):使用事务操作,将给定的实体插入数据库,若此实体类存在,则覆盖  

long    insertWithoutSettingPk(T entity):将给定的实体插入数据库,但不设定主键  

  

// 新增数据插入相关API  

void    save(T entity):将给定的实体插入数据库,若此实体类存在,则更新  

void    saveInTx(java.lang.Iterable entities):将给定的实体插入数据库,若此实体类存在,则更新  

void    saveInTx(T... entities):使用事务操作,将给定的实体插入数据库,若此实体类存在,则更新  

  

// 加载相关  

T   load(K key):加载给定主键的实体  

java.util.List     loadAll():加载数据库中所有的实体  

protected java.util.List   loadAllAndCloseCursor(android.database.Cursor cursor) :从cursor中读取、返回实体的列表,并关闭该cursor  

protected java.util.List   loadAllFromCursor(android.database.Cursor cursor):从cursor中读取、返回实体的列表  

T   loadByRowId(long rowId) :加载某一行并返回该行的实体  

protected T     loadUnique(android.database.Cursor cursor) :从cursor中读取、返回唯一实体  

protected T     loadUniqueAndCloseCursor(android.database.Cursor cursor) :从cursor中读取、返回唯一实体,并关闭该cursor  

  

//更新数据  

void    update(T entity) :更新给定的实体  

protected void  updateInsideSynchronized(T entity, DatabaseStatement stmt, boolean lock)   

protected void  updateInsideSynchronized(T entity, android.database.sqlite.SQLiteStatement stmt, boolean lock)   

void    updateInTx( :使用事务操作,更新给定的实体  

void    updateInTx(T... entities):使用事务操作,更新给定的实体

猜你喜欢

转载自blog.csdn.net/qq_42749901/article/details/81161963