GreenDAO之「03.AS环境下的基本操作」
2017-03-31 17:14
363 查看
编程是一种美德,是促使一个人不断向上发展的一种原动力(来自csdn首页)
然后,我们在AS控制面板上点击Project Structure,也就是下图中的按钮(倒数第四个):
然后,我们可以看到如下对话框,按照如下图所示操作 :
点击
之后,我们选择Library dependency,打开Choose Library Dependency 对话框,然后我们在搜索框里搜索greendao,在出现的搜索选项里,我们选择
点击ok,我们就把项目所需要的依赖包导入了!
然后,我们在新建项目中新建一个Module,注意我们这里是新建一个Java Library 我们命名为greendaogenerate
然后我们再按照刚才的操作,为greengenerate添加下图中的依赖包
好了,这样我们的项目所需的依赖包就添加完成了,下面,我们在greendaogenerate的MyClass类中添加以下代码:
我们可以看到,上述代码与在esclipse中输入的代码差不多
但是也是存在差异的,其中,这里我们创建了两个表,Son 表和Father 表
其实是因为这里我想要演示一下数据库中两个表是如何关联的
可以看到,我们在添加Son表对象的属性时,添加了一个
这样,我们的两个表就初步关联在了一起
然后我们运行MyClass,当出现下图中的打印信息时,说明我们的代码自动生成成功了!
另外演示两个表之间关联的效果
首先,我们定义一下greendao所需要使用到的类:
然后,我们封装一个openDb的方法:
然后我们封装插入数据的方法:
这里我们分别定义了一个Son对象和Father对象
然后我们为Son对象设置了
然后我们调用insert 方法,将数据分别添加到了Son表和Father表中
然后我们封装一个查询的方法:
这里的sonList和fatherList是我们分别定义的一个List对象:
然后我们调用了queryBuilder方法查询数据
然后我们在Son类和Father类里分别添加toString方法:
最后我们将方法添加到onCreate方法中:
好,我们运行,在logcat搜索框里搜索MAIN_TAG,就可以看到打印的如下信息了:
我们可以看到Son的fatherId属性值就是Father的id属性值
GreenDAO之「01.初始GreenDAO」
GreenDAO之「02.Eclipse环境下的基本操作」
程序猿干货分享,欢迎您的到来!
在 GreenDAO之「02.Eclipse环境下的基本操作」中,我们一起学习了greendao在eclipse环境中的基本操作
但是,我们现在主流的开发工具其实是AS
这篇文章呢,我们就一起学习一下greendao在AS中的操作
为避免内容的重复,我们在AS中学习时有了点不一样的内容,一起看一下吧!
1.自动生成代码
首先,我们在AS中新建一个名为Greendao 的安卓项目然后,我们在AS控制面板上点击Project Structure,也就是下图中的按钮(倒数第四个):
然后,我们可以看到如下对话框,按照如下图所示操作 :
点击
之后,我们选择Library dependency,打开Choose Library Dependency 对话框,然后我们在搜索框里搜索greendao,在出现的搜索选项里,我们选择
点击ok,我们就把项目所需要的依赖包导入了!
然后,我们在新建项目中新建一个Module,注意我们这里是新建一个Java Library 我们命名为greendaogenerate
然后我们再按照刚才的操作,为greengenerate添加下图中的依赖包
好了,这样我们的项目所需的依赖包就添加完成了,下面,我们在greendaogenerate的MyClass类中添加以下代码:
public class MyClass { public static void main(String args[]) { Schema schema = new Schema(1, "www.yuanhongbao.win"); Entity son = schema.addEntity("Son"); son.addStringProperty("name"); son.addIntProperty("age"); son.addIdProperty(); Property fatherId = son.addLongProperty("fatherId").getProperty();//Son表的外键 Entity father = schema.addEntity("Father"); father.addStringProperty("name"); father.addIntProperty("age"); father.addIdProperty(); son.addToOne(father, fatherId); try { new DaoGenerator().generateAll(schema, "app/src/main/ d0bd java"); } catch (Exception e) { e.printStackTrace(); } } }
我们可以看到,上述代码与在esclipse中输入的代码差不多
但是也是存在差异的,其中,这里我们创建了两个表,Son 表和Father 表
其实是因为这里我想要演示一下数据库中两个表是如何关联的
可以看到,我们在添加Son表对象的属性时,添加了一个
addLongProperty("fatherId")属性,然后添加了一个
addToOne(father, fatherId)属性,其实这就是两个表关联的关键:通过在Son表中设置一个Father表的外键
这样,我们的两个表就初步关联在了一起
然后我们运行MyClass,当出现下图中的打印信息时,说明我们的代码自动生成成功了!
到此,自动生成代码完成!
2.基本操作
由于基本操作与esclipse环境中的操作差别不大,这里简要演示插入数据和查询数据另外演示两个表之间关联的效果
首先,我们定义一下greendao所需要使用到的类:
private DaoMaster master; private DaoSession session; private SQLiteDatabase db; private SonDao sonDao; private FatherDao fatherDao;
然后,我们封装一个openDb的方法:
private void openDb() { db = new DaoMaster.DevOpenHelper(MainActivity.this, "person.db", null).getWritableDatabase(); master = new DaoMaster(db); session = master.newSession(); sonDao = session.getSonDao(); fatherDao = session.getFatherDao(); }
然后我们封装插入数据的方法:
private void addPerson() { Son son = new Son(); son.setName("小猿"); son.setAge(20); Father father = new Father(); father.setName("James"); father.setAge(45); long fatherId = fatherDao.insert(father); son.setFatherId(fatherId); sonDao.insert(son); }
这里我们分别定义了一个Son对象和Father对象
然后我们为Son对象设置了
setFatherId(fatherId)属性,就是设置Son表的外键为Father表的ID
然后我们调用insert 方法,将数据分别添加到了Son表和Father表中
然后我们封装一个查询的方法:
private void queryPerson() { sonList = sonDao.queryBuilder().list(); Log.i("MAIN_TAG", "Son表:" + sonList); fatherList = fatherDao.queryBuilder().list(); Log.i("MAIN_TAG", "Father表:" + fatherList); }
这里的sonList和fatherList是我们分别定义的一个List对象:
private List<Son> sonList; private List<Father> fatherList;
然后我们调用了queryBuilder方法查询数据
然后我们在Son类和Father类里分别添加toString方法:
在Son类里右击——>Generate——>toString——>OK Father类操作相同
最后我们将方法添加到onCreate方法中:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); openDb(); addPerson(); queryPerson(); }
好,我们运行,在logcat搜索框里搜索MAIN_TAG,就可以看到打印的如下信息了:
我们可以看到Son的fatherId属性值就是Father的id属性值
到此,我们在AndroidStudio环境下,对数据库的操作就学习完成了!
接下来的文章,我们将一起学习一下GreenDAO的各种各样的数据库的查询方法,一起期待吧!
往期回顾:GreenDAO之「01.初始GreenDAO」
GreenDAO之「02.Eclipse环境下的基本操作」
彩蛋!!
看到这里的朋友你有福利了!我的个人微信公众号上线了!众多热门技术文章,众多有趣好玩的脑洞,请扫描下方二维码关注!
程序猿干货分享,欢迎您的到来!
相关文章推荐
- GreenDAO之「02.Eclipse环境下的基本操作」
- Android操作数据库的框架-GreenDao基本使用记录
- UNIX环境高级编程学习之第十章信号-信号的基本操作(绑定/忽略/默认/发送)
- 用户shell环境基本操作
- [OSGI] Felix基本环境搭建及操作
- phonegap环境配置与基本操作
- linux命令基本操作以及Java的安装与环境的配置
- 泛型dao架构实现,封装crud等基本操作
- MongoDB 在windows shell环境下的基本操作和命令的使用示例(二)
- 学习Python旅程之一Python的基本操作环境
- jpa入门之环境搭建和CRUD基本操作
- JAVA实现DAO基本层CRUD操作
- 用户shell环境基本操作2
- VC环境下使用HALCON图像处理库的配置与基本操作
- mysql环境搭建 及 基本操作
- jpa入门之环境搭建和CRUD基本操作
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-演示ORM的基本操作
- Archlinux 环境 Mysql 基本操作
- RHEL6入门系列之六,桌面环境下的基本操作
- MySQL for Mac 安装和基本操作(包含后期的环境变量设置)