Android eclipse下数据开源框架GreenDao的配置
1、前言
ORM(Object-RelationMapping,对象关系映射),是一种为了解决面向对象与数据库存在的互一匹配的现象的技术,通过描述对象和关系数据库之间的映射,将程序中的对象自动持久化到关系数据库中。web中有很多的框架,像ssh2这些框架,其中的hibernate对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲使用对象编程思维来操作数据库。当然Android中也有这样的框架,其中之一就是GreepDAO。GreepDAO是一个可以帮助Android开发者快速将Java对象映射到SQLLite数据库的表单中的ORM解决方案。使用GreepDAO框架,心对对象的形式去访问数据库。如果大家熟悉web中的sping+hibernate+struts的话,这就跟hibernete是一样的原理。
2、首先要下载三个包,
下载地址:http://download.csdn.net/detail/csm_qz/8569031
3、在eclipse里面那一个java项目就取名叫MyGreenDao,记住是java项目,不是android项目。然后把三个包导入进去。导入的方法:项目-》build path->configur build path,在Java Build Path里面选择Libraries->Add External JARs,然后选中上面下载的三个包-》OK。包就导入进去了
4、MyGreenDao里面有一个源文件src,再创建一个src-gen(创建方法:MyGreenDao-》new->source folder),也可以不用创建源文件,看自己的需要了
5、在src下创建 一个类,里面的代码如下:
package com; import java.io.IOException; import de.greenrobot.daogenerator.DaoGenerator;
import de.greenrobot.daogenerator.Entity;
import de.greenrobot.daogenerator.Schema; public class GreenDao {
public static void main(String[] args) throws IOException, Exception {
// 参数3是数据库版本号,
//“com.cn.speedchat.greendao”是包名,也就是说生成的Dao文件会在这个包下
Schema schema = new Schema(1, "com.cn.speedchat.greendao");
addStu(schema);
//这个是生成Dao文件的路径的位置,这个代表当前工程的上一级目录的javagreendao的src-gen文件夹里面,
//其实就是跟src同一级目录,所以你自己要在src同一级目录下新建一个src-gen文件夹待会要生成的文件
new DaoGenerator().generateAll(schema, "src-gen");
} //增加Stu表
private static void addStu(Schema schema){
Entity msg = schema.addEntity("stu");//stu就相当于表名了
msg.addIdProperty().autoincrement();//创建表的id为主键并且是自增的,
msg.addIntProperty("age").notNull();//age整型不能为空
msg.addStringProperty("name").notNull();//name String型不能为空
}
}
我这里只是简单的创建一个表,用java运行这个类,刷新一下,就会在你之前创建的包src-gen下com.cn.speedchat.greendao里面有一些生成4个类,代码有报错,不用管它
DaoMaster.java是进行连接到SQLLite中创建表,如果有多张表,全部都在这里面创建
DaoSession.java
stu.java是实体对象,里面的属性就是数据库里面的字段
stuDao.java
参考网站:http://www.android100.org/html/201504/25/139839.html
Android eclipse下数据开源框架GreenDao的配置的更多相关文章
- 数据库开源框架GreenDao的使用解析
数据库开源框架GreenDao的使用解析 1,GreenDao概述 1),greenDao是一个当下十分火热的数据库开源框架,或者说是一个帮助Android开发者将数据存到SQLite中的一个开源项目 ...
- [转]六款值得推荐的android(安卓)开源框架简介
本文转自:http://www.jb51.net/article/51052.htm .volley 项目地址 https://github.com/smanikandan14/Volley-demo ...
- 六款值得推荐的android(安卓)开源框架简介(转)
1.volley 项目地址 https://github.com/smanikandan14/Volley-demo (1) JSON,图像等的异步下载: (2) 网络请求的排序(scheduli ...
- 几款值得推荐的android(安卓)开源框架简介
技术不再多,知道一些常用的.不错的就够了. 该文章自有需要的时候,mark一下. 顺序不代表排名,根据自己需求进行选择即可. 1.volley 项目地址 https://github.com/sman ...
- 六款值得推荐的android(安卓)开源框架简介
1.volley 项目地址 https://github.com/smanikandan14/Volley-demo (1) JSON,图像等的异步下载: (2) 网络请求的排序(scheduli ...
- 六款值得推荐的android(安卓)开源框架
1.volley 项目地址 https://github.com/smanikandan14/Volley-demo (1) JSON,图像等的异步下载: (2) 网络请求的排序(scheduli ...
- Android的SwipeToDismiss第三方开源框架模拟QQ对话列表侧滑删除,置顶,将头像图片圆形化处理。
<Android SwipeToDismiss:左右滑动删除ListView条目Item> Android的SwipeToDismiss是github上一个第三方开源框架(github ...
- 六款值得推荐的android(安卓)开源框架简介【转】
http://my.oschina.net/u/1244156/blog/380647 1.volley 项目地址 https://github.com/smanikandan14/Volley-de ...
- Delphi下IOCP开源框架:DIOCP 成功应用案例分享
首先说明,该项目不是本人的项目,本文转自盒子. 该项目使用的DIOCP版本为1.0,目前diocp为3.5 以下是盒子的原文 ------------------------------------- ...
随机推荐
- 分享一个nodejs写的小论坛
引言:作为一个前端小菜鸟,最近迷上了node,于是乎空闲时间,为了练练手写了一个node的小社区,关于微信小程序的,欢迎大家批评指导. 项目架构部分 一.前端架构 作为一个写样式也得无聊的前端狮,我偷 ...
- ScheduleThreadPoolExecutor源码分析(二)
DelayedWorkQueue: DelayedWorkQueue实现了BlockingQueue接口,因此其可以作为线程池的任务队列.BlockingQueue的主要属性有以下几个: privat ...
- C++ Reference 的“三位一体”诠释
C++ 是介于汇编语言与高级语言之间的一种“全能”语言.它的能力是其他任何基于VMA(冯-诺曼架构)计算机的高级程序设计语言无法望其项背的,而性能也只有C语言可与之伯仲. 然而长期以来,喜欢C++和憎 ...
- SGU 163.Wise King
一道题目长的水题.... 总结就一句话,给出n个(-3~3)的数,一个数m,取任意个数是使这些数的m次幂之和最大. code #include <iostream> #include &l ...
- underscorejs-partition学习
2.25 partition 2.25.1 语法: _.partition(list, predicate, [context]) 2.25.2 说明: 拆分list为两个数组. 第一个数组的元素都满 ...
- extjs中gridpanel动态显示/隐藏列
在extjs3中,大家知道用 myGrid.getColumnModel().setHidden(i,true);但到了4.0后,已经没有getColumnModel这个方法了,我们在Ext.pane ...
- masonry结合json 制作无限滚动的瀑布流
做前端这行的 能直接贴代码就直接贴代码了,不用多说什么别的 效果需要引入jquery和jquery.masonry.min.js这两个JS JS代码如下: $(document).ready(func ...
- 枚举宏(Adopting Modern Objective-C)
使用NS_ENUM 和 NS_OPTIONS宏定义枚举.Adopting Modern Objective-C 使用NS_ENUM宏定义一组互斥的枚举值: typedef NS_ENUM(NSInte ...
- iOS - 正则表达式判断邮箱、身份证..是否正确:
iOS - 正则表达式判断邮箱.身份证..是否正确: //邮箱 + (BOOL) validateEmail:(NSString *)email { NSString *emailRegex ...
- 求助:对话框下OnInitDialog中使用SetTimer无效
原文地址:http://www.w3c.com.cn/%E6%B1%82%E5%8A%A9%EF%BC%9A%E5%AF%B9%E8%AF%9D%E6%A1%86%E4%B8%8Boninitdial ...