第一步,添加依赖,在项目目录中的build.gradle添加以下依赖
//在repositories里添加mavenCentral()【如果添加了就不用再添加了!!!】
repositories {
mavenCentral()
}
//在dependencies里添加
dependencies {
classpath ‘org.greenrobot:greendao-gradle-plugin:3.2.2’ // add plugin
}
第二步,添加依赖,在App目录中的build.gradle添加以下依赖
apply plugin: ‘org.greenrobot.greendao’ // apply plugin//(在头部)
//在dependencies里添加
implementation ‘org.greenrobot:greendao:3.2.2’ // add library//(添加依赖的那里)
第三步,在App目录中的build.gradle添加生成操作数据库类和buildTypes同一级别
greendao {
schemaVersion 1 //版本
daoPackage ‘ming.abner.com.app1102.greendao’ // 一般为app包名+生成文件的文件夹名
targetGenDir ‘src/main/java’ //生成文件路径
}
全部依赖导完毕之后可以同步一下项目,按住Ctrl+F9,或者点小锤子
第四步,创建实体类JavaBean
@Entity
public class NewsBean{
@Id(autoincrement = true)
private Long id;
private String title;
private String image;
private String desc;
}
写完javabean之后再同步一下项目距,出现一个包下三个类,如下:
第五步,创建数据库的操作类
package com.example.greendaolx2;
import android.app.Application;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import ming.abner.com.app1102.greendao.DaoMaster;
import ming.abner.com.app1102.greendao.DaoSession;
public class BaseApplication {
private static BaseApplication mInstance;
private static DaoSession daoSession;
private static DaoMaster daoMaster;
private static SQLiteDatabase db;
private BaseApplication(Context context) {
//通过 DaoMaster 的内部类 DevOpenHelper,你可以得到一个便利的 SQLiteOpenHelper
//注意:默认的 DaoMaster.DevOpenHelper 会在数据库升级时,删除所有的表,意味着这将导致数据的丢失。
DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(context, "contacts-db",null);
//注意:该数据库连接属于 DaoMaster,所以多个 Session 指的是相同的数据库连接。
db = devOpenHelper.getWritableDatabase();
daoMaster = new DaoMaster(db);
daoSession = daoMaster.newSession();
}
public static BaseApplication getmInstance(Context context){
if (mInstance == null){
synchronized (BaseApplication.class){
if (mInstance == null){
mInstance = new BaseApplication(context);
}
}
}
return mInstance;
}
public DaoSession getDaoSession(){
return daoSession;
}
public DaoMaster getDaoMaster(){
return daoMaster;
}
public static SQLiteDatabase getDb() {
return db;
}
}
第六步,在MainActivity中调用,代码如下:
package com.example.greendaolx2;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import java.util.List;
import ming.abner.com.app1102.greendao.DaoSession;
import ming.abner.com.app1102.greendao.NewsBeanDao;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
NewsBeanDao newsBeanDao = BaseApplication.getmInstance(this).getDaoSession().getNewsBeanDao();
NewsBean newsBean = new NewsBean(null, "qqqq", "", "xixixi");
//增
//newsBeanDao.insert(newsBean);
//查询
//List<NewsBean> newsBeans = newsBeanDao.loadAll();
//单个查询
NewsBean load = newsBeanDao.load((long) 8);
Log.d("jjj",load.getTitle()+"");
//全部删除
//newsBeanDao.deleteAll();
//根据id删除
//newsBeanDao.deleteByKey((long)10);
//修改
//NewsBean mm = new NewsBean((long) 8, "liujin", "", "");
//newsBeanDao.update(mm);
// Log.d(“jjj”,newsBeans.size()+"");
// for (int i = 0; i < newsBeans.size(); i++) {
// String title = newsBeans.get(i).getTitle();
// Long id = newsBeans.get(i).getId();
// Log.d(“jjj”,id+“Id”+title+“标题”);
// }
}
}
这就是GreenDao的简单的增删改查了,