配置 插件与依赖
项目下
-----------在repositories的括号里加入仓库----
mavenCentral()
------------- 在dependencies的括号里加入插件---------
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2'
---------------在app 里的Build最上面---------------------
apply plugin: 'org.greenrobot.greendao'
----------------app 里的Build加依赖----------------------
implementation 'org.greenrobot:greendao:3.2.2'
----------------在dependencies的上面-----------
greendao {
schemaVersion 1 //版本
daoPackage '包名.greendao' // 一般为app包名+生成文件的文件夹名
targetGenDir 'src/main/java' //生成文件路径
}
写一个 Bean
注解 需要写上 写完之后 摁Ctrl+Fn+F9自动生成Dao
@Entity
public class GBean {
@Id(autoincrement = true)//主键自增
private Long id;
生成后的文件
自己写一个工具类 用于增删改查
public class SqliteUtiles {
private SQLiteDatabase db;
private DaoMaster daoMaster;
private DaoSession daoSession;
//单例 要一个私有构造 和一个公共静态有参
private SqliteUtiles() {
}
private static SqliteUtiles sqliteUtiles;
public static SqliteUtiles getSqliteUtiles() {
//判断是否为空
if (sqliteUtiles == null) {
sqliteUtiles = new SqliteUtiles();
}
return sqliteUtiles;
}
//初始化数据库 传上下文
public void init(Context context){
//new DaoMaster 的Dev方法 传上下文 数据库名称 返回一个帮助类
DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(context, "g1");
//获取写数据的db
db = helper.getWritableDatabase();
daoMaster = new DaoMaster(db);//控制类
daoSession = daoMaster.newSession();//初始化协议
}
//增
public void insert(User user){
//直接使用daoSession获取userdao 调用里面的insert
daoSession.getUserDao().insert(user);
}
//查全部
public List<User> chaAll(){
//查询全部
return daoSession.getUserDao().loadAll();
}
//单个查询
public User chaid(String key){
//传主键Long对象
return daoSession.getUserDao().load(Long.parseLong(key));
}
//单个删除
public void delid(String key){
daoSession.getUserDao().deleteByKey(Long.parseLong(key));
}
//删除全部
public void delAll(){
daoSession.getUserDao().deleteAll();
}
//修改
public void gai(User user){
daoSession.getUserDao().update(user);
}
}
使用该工具类
首先在用的页面初始化工具类 一定要
SqliteUtiles.getSqliteUtiles().init(this);
这里用几个按钮演示增删改查
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.zeng://直接调用工具类里的 添加方法
User user = new User();
user.setAge(18);
user.setName("高XX");
user.setPsd("2452");
user.setSex("男");
SqliteUtiles.getSqliteUtiles().insert(user);
break;
case R.id.cha://查询
List<User> cha = SqliteUtiles.getSqliteUtiles().chaAll();
for (int i = 0; i < cha.size(); i++) {
Log.i("MainActivity", cha.get(i).getName()+"id:"+cha.get(i).getId()+"性别:"+cha.get(i).getSex()+"密码:"+cha.get(i).getPsd()+"年龄:"+cha.get(i).getAge());
}
break;
case R.id.chaid:
//里面 穿key
User chaid = SqliteUtiles.getSqliteUtiles().chaid("2");
Log.i("MainActivity", "id:" + chaid.getId() + "名字:" + chaid.getName());
break;
case R.id.del:
//删全部
SqliteUtiles.getSqliteUtiles().delAll();
break;
case R.id.delid:
//删除单个
SqliteUtiles.getSqliteUtiles().delid("1");
break;
case R.id.gai:
//修改之前先查询一条
User usergai = SqliteUtiles.getSqliteUtiles().chaid("19");
usergai.setId(Long.parseLong("19"));
usergai.setSex("女");
usergai.setName("马XX");
usergai.setPsd("123456");
SqliteUtiles.getSqliteUtiles().gai(usergai);
break;
}
}