GreenDao的使用小例子和增删改查的方法
来源:互联网 发布:seo营销方法 编辑:程序博客网 时间:2024/06/04 19:15
1、创建「GREENDAO GENERATOR」模块 (纯 JAVA 工程)
1.1、添加如下依赖:
compile 'de.greenrobot:greendao:2.1.0'
1.2、在java同级目录下创建java_gen文件夹
1.3、创建DaoGenerator工具类如下:
public class UtDaoGenerator { public static void main(String[] args) throws Exception { // 创建一个用于添加实体(Entity)的模式(Schema)对象。 // 两个参数分别代表:数据库版本号与自动生成代码的包路径。 Schema schema = new Schema(1, "com.viciy.greendao"); // 得到Schema 对象后,就可以使用它添加实体(Entities)了。 addChat(schema); // 最后使用 DAOGenerator 类的 generateAll() 方法自动生成代码,此处你需要根据自己的情况更改输出目录(既之前创建的 java-gen)。 new DaoGenerator().generateAll(schema, "E:\\Android\\AS_WorkSpace\\UtChatGreenDao\\app\\src\\main\\java_gen"); } /** * @param schema */ private static void addChat(Schema schema) { // 一个实体(类)就关联到数据库中的一张表,此处表名为「InstallTask」(既类名) Entity installTask = schema.addEntity("InstallTask"); // greenDAO 会自动根据实体类的属性值来创建表字段,并赋予默认值 // 接下来便可以设置表中的字段: installTask.addIdProperty(); /** * 本次添加一下两个自定义字段: * downloadId * apkUrl */ installTask.addStringProperty("downloadId").notNull(); installTask.addStringProperty("apkUrl"); }}
1.4、运行工具类,生成 InstallTaskDao.java、InstallTask.java、DaoMaster.java、DaoSession.java
生成的InstallTaskDao.java、InstallTask.java、DaoMaster.java、DaoSession.java 文件前面都有一个小红点 这是因为包名的问题,把这四个文件拷贝到Android项目中,将包名修改正确,并将每个文件的import 中报错部分删除,然后rebuild即可,修改后结果如下图:
PS:这里一开始不使用项目中的包名是因为,我们在开发中一般都是先写demo,再将demo移植到项目中去。若一开始创建Schema对象的包名与项目的包名一致,则不用修改,直接将上述四个文件拷入对应的包名下即可;
2、GreenDao增删改查的方法
2.1 使用GreenDao创建DbHeleper,如下:
package com.viciy.utchatgreendao;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import java.util.List;import de.greenrobot.dao.query.Query;/** * Created by Viciy on 2017/01/27. */public class DbInstallTaskHelper { public final static String dbName = "chat_from_team"; private Cursor cursor; //用于聊天对象和群名的保存 private DaoMaster.DevOpenHelper helper; private SQLiteDatabase db; private DaoMaster master; private DaoSession daoSession; public DbInstallTaskHelper(Context context) { //初始化数据库 setupDatabase(context); String orderBy = ChatFromTeamDao.Properties.Id.columnName + " DESC"; //查询,得到cursor cursor = getDb().query(getDaoSession().getChatFromTeamDao().getTablename(), getDaoSession().getChatFromTeamDao().getAllColumns(), null, null, null, null, orderBy); } public void setupDatabase(Context context) { //创建数据库 helper = new DaoMaster.DevOpenHelper(context, DbInstallTaskHelper.dbName, null); //得到数据库连接对象 db = helper.getWritableDatabase(); //得到数据库管理者 master = new DaoMaster(db); //得到daoSession,可以执行增删改查操作 daoSession = master.newSession(); } public DaoSession getDaoSession() { return daoSession; } public SQLiteDatabase getDb() { return db; } /** * 添加 */ public void add(String apkUrl, String downloadId) { InstallTask chatFromTeam = new InstallTask(null, apkUrl, downloadId); //面向对象添加表数据 getDaoSession().getChatFromTeamDao().insert(chatFromTeam); cursor.requery();//刷新 close(); } /** * 根据sessionid删除 */ public void delete(String apkUrl, String downloadId) { InstallTask chatFromTeam = new InstallTask(null, apkUrl, downloadId); getDaoSession().getChatFromTeamDao().delete(chatFromTeam); cursor.requery(); close(); } /** * 更新 */ public void update(String apkUrl, String downloadId) { InstallTask chatFromTeam = getDaoSession().getChatFromTeamDao().queryBuilder().where(ChatFromTeamDao.Properties.Sessionid.eq(apkUrl)).build().unique(); chatFromTeam.setDownloadId(downloadId); getDaoSession().getChatFromTeamDao().update(chatFromTeam); cursor.requery(); close(); } /** * 查询 * * @ param sessionid */ public List<InstallTask> query(String apkUrl) { // Query 类代表了一个可以被重复执行的查询 Query<InstallTask> query = getDaoSession().getChatFromTeamDao().queryBuilder() .where(ChatFromTeamDao.Properties.Sessionid.eq(apkUrl)) .orderAsc(ChatFromTeamDao.Properties.Id) .build(); // 查询结果以 List 返回 List<InstallTask> count = query.list(); close(); return count; } /** * 关闭cursor */ public void close() { cursor.close(); }}
2.2、GreenDao增删改查的的使用
创建DbInstallTaskHelper对象,调用它的增删改查方法即可,如:
DbInstallTaskHelper helper = new DbInstallTaskHelper(context);List<InstallTask> query = helper.query("1234");
2 0
- GreenDao的使用小例子和增删改查的方法
- GreenDao的增删改查
- greenDAO的使用详解---(1)greenDAO的配置和增删改查
- greenDao简单的增删改查
- GreenDao的简单实用增删改查
- jQuery和增删改查方法的小总结
- SpringMVC+hibernate整合小例子,用户的增删查改
- 一个使用Pro*C实现增删改查的小例子
- 一个使用Pro*C实现增删改查的小例子
- GreenDao 增删改查
- greenDao增删改查
- greendao 3.0使用增删改查
- 一个使用ibatis对数据库增删改查的例子
- greenDao配置和增删改查
- (安卓) GreenDao 数据库的增删改查!
- GridView的增删改查的例子
- greenDao的使用---重点来啦 实现ORM连表 增删改查 颤抖吧凡人
- ibatis增删查改的一个例子
- Android 开发 Parcelable,Serializable接口
- Charles + Mocky 抓包工具与模拟返回数据的利器(mac版)
- 出现次数最多的整数
- 二叉树的创建与遍历
- 常用设计者模式---工厂模式和单例模式
- GreenDao的使用小例子和增删改查的方法
- 行通济
- 图的基本存储的基本方式三—结构体数组
- sql server 2000报1326错误解决
- canvas将文字生成图片
- oop &&GP 模板 ---> 特化和偏特化
- 详解QEMU网络配置的方法
- mysql update select 语句
- 静态链接库依赖测试