今天居然看到有人给我点赞,其实还是蛮开心的。以后写博客尽量写的详细点。再接再厉
android数据库的操作,除了SQLiteOpenHelper工具以外,还提供了GreenDao来实现,底层也是使用SQLiteOpenHelper来实现的
1.github地址 https://github.com/greenrobot/greenDAO
2.依赖参照github
buildscript { repositories { jcenter() mavenCentral() // add repository } dependencies { classpath 'com.android.tools.build:gradle:3.1.1' classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin } } // In your app projects build.gradle file: apply plugin: 'com.android.application' apply plugin: 'org.greenrobot.greendao' // apply plugin dependencies { implementation 'org.greenrobot:greendao:3.2.2' // add library }
3.构建数据库实体
@Entity public class PersonRes { @Id(autoincrement = true)//主键自增长 private Long id; @NotNull//不能为空 private String name; @NotNull private int age; } 4.在gradle文件中配置生成数据库工具文件的路径 schemaVersion 1 daoPackage 'com.dejun.commonsdk.gen'//此处要写成你的项目包名.gen(新建目录名称) targetGenDir 'src/main/java' 5.点击Build里的Make Project会自动在com.dejun.commonsdk下生成gen目录,在gen目录下有DaoMaster和DaoSession两个文件 6.使用
public class GreenDaoUtil { private DaoManager daoManager; public GreenDaoUtil(Context context) { daoManager = DaoManager.getInstance(); daoManager.init(context); } /** * 插入数据,如果表未创建,先创建表 */ public boolean insert(PersonRes personRes){ boolean flag=false; flag=daoManager.getDaoSession().getPersonResDao().insert(personRes)==-1?false:true; Logger.d("insert:"+personRes); return flag; } /** * 插入多条数据 */ public void insertList(final List<PersonRes> personResList){ daoManager.getDaoSession().runInTx(new Runnable() { @Override public void run() { for (PersonRes personRes:personResList ){ daoManager.getDaoSession().insertOrReplace(personRes); } } }); } /** * 修改一条数据 */ public boolean update(PersonRes personRes){ boolean flag=false; try { daoManager.getDaoSession().update(personRes); flag=true; } catch (Exception e) { e.printStackTrace(); } return flag; } /** * 删除单条数据 */ public boolean delete(PersonRes personRes){ boolean flag=false; try { daoManager.getDaoSession().delete(personRes); flag=true; } catch (Exception e) { e.printStackTrace(); } return flag; } /** * 删除所有数据 */ public boolean deleteAll(){ boolean flag=false; try { daoManager.getDaoSession().deleteAll(PersonRes.class); flag=true; } catch (Exception e) { e.printStackTrace(); } return flag; } /** * 查询所有记录 */ public List<PersonRes> queryAll(){ return daoManager.getDaoSession().loadAll(PersonRes.class); } }