Android GreenDao的配置和使用
来源:互联网 发布:java 参数不能传null 编辑:程序博客网 时间:2024/06/05 18:49
前言:
本文讲述在Eclipse开发Android项目集成GreenDao ORM的教程和代码示例,讲述GreenDao在项目中的部署以及使用GreenDao生成Dao类的示例,最后讲解GreenDao的增删改查的使用,本文讲述的完整项目源码,将在文章末尾提供下载参考。
一. 简介:
1.GreenDao官网:点击进入
2.GreenDao是目前速度最快的Android ORM似乎没有之一,而且具备了像Hibernate逆向工程一样,可自动生成实体类和DAO类,节省时间解放双手,选择它作为Android项目的ORM是毋庸置疑的。
3.本文讲解GreenDao3.2.2最常用的配置和“增删改查”的使用,了解了这些,再到官网上参考说明文档也就轻松了许多。
二. 下载
1.所有依赖jar包下载地址:点击下载
2.也可以到Maven上自行搜索下载:点击跳转到maven
3.所需要的jar包清单:
- greendao-3.2.2.jar
- greendao-generator-3.2.2.jar
- greendao-api-3.2.2.jar
- freemarker-2.3.26-incubating.jar
三. 配置
1.部署jar包:新建Android项目(或用你的Android项目),将上面的4个Jar包拷贝到项目libs中,然后右键选中jar包,选择BuildPath,选择Add to Build Path。
2.创建GreenDao生成器:新建一个Java类,在Main方法中写下你项目的实体类的包名、类名、类属性和生成代码文件的保存路径,既可自动创建Bean和Dao类。
package com.greendao.main;import java.io.IOException;import org.greenrobot.greendao.generator.DaoGenerator;import org.greenrobot.greendao.generator.Entity;import org.greenrobot.greendao.generator.Schema;public class GenerateGreenDao { public static void main(String[] args) { //第一个参数时int类型的version版本号, 第二个是String类型的 defaultJavaPackage完整包名) Schema schema = new Schema(1, "com.greendao.dao"); //数据库表名,即JavaBean的名字,例:以User为例 Entity user= schema.addEntity("User"); //添加一个主键,自动添加一个id作为主键,不能自定义 user.addIdProperty(); //添加两个字段,即JavaBean的属性:userName和UserPwd user.addStringProperty("userName").notNull(); user.addStringProperty("UserPwd"); try { //该路径必须要存在。最后代码生成路径为../GreenDaoDemo/src再加上Schema中的包名"com.greendao.bean" new DaoGenerator().generateAll(schema, "../GreenDaoDemo/src"); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } }}
3.运行这个main方法类,成功运行完后,右键Refresh项目。即可看到自动生成DAO类和JavaBean类和Session类和DaoMaster类,一个表生成共四个类。
4.如果在Android项目中运行main方法报错:Invalid layout of java.lang.String at value。
解决方法:
- 右键单击这个类,选择run as –>run configuration
- 选择class path,将Bootstrap Entires程序引导下的Android4.4.2(你的SDK版本)Remove去掉即可。
四. 使用
1.如何在程序中开启一个数据库连接?
private DevOpenHelper helper; private DaoMaster master; private DaoSession session; private UserDao userdao; /** * 开启一个数据库连接 */ private void openDb() { helper = new DaoMaster.DevOpenHelper(MainActivity.this, "user"); master = new DaoMaster(helper.getWritableDatabase()); session = master.newSession(); userdao = session.getUserDao(); }
2.插入一条数据:
private void save() { // 打开数据库 openDb(); // 通过时间戳生成一个唯一主键,保证主键不重复,否则会主键冲突,插入数据报错 Long id = System.currentTimeMillis(); // 创建一个对象,传入相应的值 User user = new User(id, name.getText().toString(), pwd.getText().toString()); // 返回值为该表的主键ID Long rowId = userdao.insert(user); // 成功返回该条数据的id,表示数据插入成功。 Toast.makeText(MainActivity.this, (id.equals(rowId)) ? "保存成功" : "保存失败", Toast.LENGTH_SHORT).show();}
3.删除一条数据:
private void delete(){ openDb(); //删除Id为2的用户 userdao.delete(new User(Long.valueOf(2)));}
4.修改一条数据:
private void update() { openDb(); userdao.insertOrReplace(new User(Long.valueOf(1),"葫芦娃","12345678")); }
5.查询数据:
private List<User> Query() { openDb(); List<User> list= userdao.queryBuilder().list(); Log.i("greendao", list.toString()); return list;}
6.条件查询:
//查询用户名为“葫芦娃”的用户信息private User queryByconditionEq(){ User user = userdao.queryBuilder().where(UserDao.Properties.UserName.eq("葫芦娃")).unique(); return user;}
7.惰性查询:
/** * 惰性加载(只加载对象和对象的属性游标,而当调用对象的属性时候,才通过游标加载其中的属性) * 注意:使用结束,要关闭游标。 * @return LazyList */private LazyList<User> queryLazy(){ openDb(); LazyList<User> list = userdao.queryBuilder().listLazy(); list.close();//关闭游标 return list; }
关于其他的方法就不在此一一展开演示了,学会了这些基础的使用,再看一下文档里的说明,也就都会使用啦。
本教程所使用的项目的演示代码下载:点击下载
彩蛋:推荐一下查看安卓数据库文件的软件,解压即可使用,通过FileExplorer将data/data/项目文件夹/database中的文件拷贝到Windows中,拖到软件图标上就可以查看数据表了,下载地址:点击下载
- Android GreenDao的配置和使用
- GreenDao的配置和简单的使用
- greenDao的简单配置和使用
- GreenDao的配置使用
- Android GreenDao的使用
- Android:GreenDao的使用
- Android 配置使用 GreenDao 教程
- Android studio配置使用GreenDao
- Android greendao配置及使用
- 关于GreenDao数据库框架在android studio上的相关配置和使用
- greenDao的使用--- 配置 androidstudio
- greenDAO的使用详解---(1)greenDAO的配置和增删改查
- Greendao的详细配置和使用(转)
- Android-SQLite3_4-greenDAO的使用
- Android之greenDao的使用
- Android中GreenDao的使用
- Android--------GreenDao数据库的使用
- Android数据库 GreenDao的使用
- (一)简单工厂模式
- 关于Tomcat
- C++学习笔记 —— 算法 —— 桶排序
- MyBatis表字段名与实体类属性名冲突的解决方式
- Android版与微信Activity侧滑后退效果完全相同的SwipeBackLayout
- Android GreenDao的配置和使用
- Doxygen的安装与配置及简单注释规范
- Android世界时钟-时间1970-1-1 0:0无法设置的代码调用和原因
- ftpserver安装(win)
- 基于某知名招聘网站的上海财务岗位数据分析
- 前端代码规范文本
- 常见的关于wamp的问题
- PAT 1008. 数组元素循环右移问题
- Spring In Action(四):基于XML的AOP