Android GreenDao的配置和使用
2017-06-03 14:15
253 查看
前言:
本文讲述在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
- Android中使用greenDao基础配置
- Android GreenDao3.2配置及使用详解
- Android greenDAO在Android Studio中的配置与使用
- 配置使用Android数据库开源框架GreenDao
- Android GreenDao3.2配置及使用详解
- Android GreenDao3.2配置及使用详解
- Android 配置使用 GreenDao 教程
- Android greenDao的简单配置和使用
- Android中使用Ormlite实现持久化(二)--持久化类的详细配置
- Android中使用Ormlite实现持久化(二)--持久化类的详细配置
- Android 程式开发:(四)使用Intent调用“内置”应用 —— 4.3配置Intent-Filter
- android游戏开发框架libgdx的使用(十一)—Skin和UI配置文件的使用
- 【Android】在Android上使用OrmLite数据库框架 之 使用表配置文件
- android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)
- android游戏开发框架libgdx的使用(十九)—使用自定义配置改进AVG游戏开发
- 【Android】在Android上使用OrmLite数据库框架 之 使用表配置文件
- Android自动化工具Monkeyrunner使用(六) —— Eclipse + Jython 环境配置
- Android中的动画效果学习之二---Tween动画(使用XML文件进行配置动画效果)