GreenDAO之「02.Eclipse环境下的基本操作」
2017-03-29 10:37
162 查看
对代码不满足,是任何真正有天才的程序员的根本特征 (来自csdn首页)
到此,第一步结束。
然后我们将解压得到的greendao-generator-2.0.0和freemarker文件copy到lib文件夹。然后在项目上右击——>Properties——>Java Build Path——>Libraries——>Add Jars…——>打开新建的项目的lib文件夹——>选中两个jar包点击OK
这样我们的jar包就可以使用了。
然后我们在src文件夹下新建一个名为greendaogenerate的class文件,并添加main函数。然后在main函数里添加以下代码:
如果代码有错误的话,按Ctrl+Shift+O导入一下包。
其实以上代码都是这个greendao官网要求我们这样做的。
其中,Schema对象的第一个参数是一个版本号,第二个参数是让我们规定自定生成的代码需要放置的包名。
然后我们用Entity创建了一个Person的类,然后为Person类添加了一些id、name等的一些属性。
然后我们new了一个DaoGenerator,其实他就是让我们规定一个自动生成的代码所要放置的地方,这里的“../GreenDaoGenerate/src”就是我们要将自动生成的代码放到src根目录下。
最后,我们try……catch了一下。
好,然后我们运行代码,我们可以看到控制台输出了下图中的字样:
这样就表示我们的代码自动生成成功了。
然后我们需要Refresh一下项目,就可以看到如下图所示的自动生成的代码了:
我们可以看到有好多报错,这是因为我们创建的是java项目,缺少android中的api,这里我们先不用管它。
好了,这样我们的代码就自动生成完成了,下面我们将它导入到android项目中!
然后我们将第三步生成的4个java文件copy到MainActivity所在的文件夹下,形如下图:
这时我们发现好多错误啊,不过不用着急,我们只需要打开有错误的文件,将报错的代码直接删除并保存就可以了!
我们学习使用GreenDAO操作数据库也不例外
我们知道,我们在自动生成代码的时候有一个Person类,其实这就是我们的数据库要储存的信息,一个Person的姓名等的信息
好,下面我们在activity_main 中创建3个EditText 和4个Button,EditText 就是需要用户输入ID、姓名和年龄,4个Button 就对应了增删改查四个操作,我们分别绑定监听事件,下面我们看一下activity_main 中的代码:
下面我们在java代码绑定控件,并为其绑定监听事件,由于这一步操作比较简单,直接上代码:
到此,第一步结束。
首先我们先声明一下以下我们需要使用到的4个大类:
以上四个类呢是我们每次使用GreenDAO都需要使用到的,其实重要的是他们的实例化的方法,我们先看一下这四个大类实例化的代码:
因为我们每次对数据操作都要使用这四个类。所以 为直接能够调用,我们把实例化他们的代码封装到了openDb()方法中。
好了,下面我们就真正的要增加数据了,其实方法很简单,我们先看代码:
看到以上代码,我们把它封装成了addData()方法
首先,我们创建了一个Person对象,我们将它的信息设置为了用户输入的ID、姓名和年龄,性别我们先设为空,创建日期我们使用了Date()类
然后我们执行dao.insert()方法将我们新建的Person对象就添加到数据库了,然后我们拿到了他的一个Long型返回值,用于打印数据有没有被添加上
然后我们把输入框清空
好,这样初始化数据库操作相关类的方法已经封装好
添加数据的方法也封装好了,下面我们对方法进行一个组合:
好,在我们运行程序之前,我们先为logcat设置一个输出的标签:
好了,我们运行程序,添加三条数据,我们可以看到MAIN_TAG标签下有如下信息:
这就说明,我们的数据已经添加成功!还挺简单的吧
好了,这样我们的增加操作就完成了!
我们在Person.java里,添加如下方法:
然后我们封装一个queryData()方法,先看代码:
其中list类的声明我们拿了出来以便使用:
我们将方法返回值赋给了一个list对象,以便打印,
然后我们将方法添加到查询Button的监听事件里:
好,我们运行,点击查询,就看到控制台打印了刚才增加的数据了:
好,查询操作就此告一段落,具体的查询还有好多种情况,下一篇博客我们再慢慢学习!
其实只是一行代码,下面我们把他添加到修改Button的监听事件里:
这里我们先实例化了list,然后我们将list中第1个数据的名字修改为“小白”,年龄修改为“0”,然后执行我们封装的updateDate()方法。
好,我们运行,先点击修改,再点击查询,我们看到logcat打印以下信息:
我们可以看到ID为201701的信息,名字变成了“小白”,年龄变成了“0”。
好,修改数据,完成!
我们可以看到,我们先实例化了list,然后遍历list中的所有数据,执行dao.delete()方法,这样就把数据库里的数据删除了!
我们运行,先点击删除,再点击查询,我们可以看到logcat打印了以下信息:
我们可以看到,数据库中的信息已经空了!这样,删除操作就完成了!
Android数据库框架GreenDAO之「01.初始GreenDAO」
程序猿干货分享,欢迎您的到来!
1.自动生成代码
我们通过查看GreenDAO的官方网站以及它在GitHub上的代码呢,发现在使用GreenDAO时,需要在java环境下自动生成一下GreenDAO的相关代码,然后再copy到安卓中来使用。
下面我们从eclipse环境下来看一下GreenDAO如何自动生成代码:
第一步:下载相关jar包
虽然我们可以从GreenDAO官网上找到其使用的相关jar包,这里为了节约大家时间,我把jar包上传到了CSDN资源里,点击下载链接 即可免费下载。解压下载的压缩包,可以看到一下三个jar包:到此,第一步结束。
第二步:新建java项目导入jar包
我们用eclipse新建一个java项目(注意是java项目),取名greendaogenerate,然后在项目根目录下创建一个lib文件夹,形如下图:
然后我们将解压得到的greendao-generator-2.0.0和freemarker文件copy到lib文件夹。然后在项目上右击——>Properties——>Java Build Path——>Libraries——>Add Jars…——>打开新建的项目的lib文件夹——>选中两个jar包点击OK
这样我们的jar包就可以使用了。
然后我们在src文件夹下新建一个名为greendaogenerate的class文件,并添加main函数。然后在main函数里添加以下代码:
Schema schema = new Schema(1, "www.yhbAndroid.win"); Entity note = schema.addEntity("Person"); note.addIdProperty(); note.addStringProperty("name").notNull(); note.addIntProperty("age"); note.addStringProperty("sex"); note.addDateProperty("date"); try { new DaoGenerator().generateAll(schema, "../GreenDaoGenerate/src"); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); }
如果代码有错误的话,按Ctrl+Shift+O导入一下包。
其实以上代码都是这个greendao官网要求我们这样做的。
其中,Schema对象的第一个参数是一个版本号,第二个参数是让我们规定自定生成的代码需要放置的包名。
然后我们用Entity创建了一个Person的类,然后为Person类添加了一些id、name等的一些属性。
然后我们new了一个DaoGenerator,其实他就是让我们规定一个自动生成的代码所要放置的地方,这里的“../GreenDaoGenerate/src”就是我们要将自动生成的代码放到src根目录下。
最后,我们try……catch了一下。
好,然后我们运行代码,我们可以看到控制台输出了下图中的字样:
这样就表示我们的代码自动生成成功了。
然后我们需要Refresh一下项目,就可以看到如下图所示的自动生成的代码了:
我们可以看到有好多报错,这是因为我们创建的是java项目,缺少android中的api,这里我们先不用管它。
好了,这样我们的代码就自动生成完成了,下面我们将它导入到android项目中!
第三步:新建Android 项目导入jar包和代码
我们新建一个名为greendaoDemo的Android项目,然后我们将解压得到的
greendao-2.0.0文件copy到libs文件夹下。
然后我们将第三步生成的4个java文件copy到MainActivity所在的文件夹下,形如下图:
这时我们发现好多错误啊,不过不用着急,我们只需要打开有错误的文件,将报错的代码直接删除并保存就可以了!
到此,自动生成的代码就可以使用了!
2.GreenDAO 基本操作
其实以上操作只是一个准备工作,下面我们一起学习一下使用GreenDAO是如何对数据库中的数据进行经典的增、删、改、查操作的!
第一步:准备相关布局和绑定监听事件
我们在学习数据库基本操作的时候,无非就是对数据的增、删、改、查我们学习使用GreenDAO操作数据库也不例外
我们知道,我们在自动生成代码的时候有一个Person类,其实这就是我们的数据库要储存的信息,一个Person的姓名等的信息
好,下面我们在activity_main 中创建3个EditText 和4个Button,EditText 就是需要用户输入ID、姓名和年龄,4个Button 就对应了增删改查四个操作,我们分别绑定监听事件,下面我们看一下activity_main 中的代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity" > <EditText android:id="@+id/id" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="输入学号" > </EditText> <EditText android:id="@+id/name" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="输入姓名" > </EditText> <EditText android:id="@+id/age" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="输入年龄" > </EditText> <Button android:id="@+id/addBtn" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="添加" /> <Button android:id="@+id/queryBtn" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="查询" /> <Button android:id="@+id/updateBtn" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="修改" /> <Button android:id="@+id/deleteBtn" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="删除" /> </LinearLayout>
下面我们在java代码绑定控件,并为其绑定监听事件,由于这一步操作比较简单,直接上代码:
public class MainActivity extends Activity implements OnClickListener { private EditText mId, mName, mAge; private Button mAdd, mQuery, mUpdate, mDelete; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init();// 初始化控件 } private void init() { mId = (EditText) findViewById(R.id.id); mName = (EditText) findViewById(R.id.name); mAge = (EditText) findViewById(R.id.age); mAdd = (Button) findViewById(R.id.addBtn); mQuery = (Button) findViewById(R.id.queryBtn); mUpdate = (Button) findViewById(R.id.updateBtn); mDelete = (Button) findViewById(R.id.deleteBtn); mAdd.setOnClickListener(this); mQuery.setOnClickListener(this); mUpdate.setOnClickListener(this); mDelete.setOnClickListener(this); } @Override public void onClick(View arg0) { switch (arg0.getId()) { case R.id.addBtn: break; case R.id.queryBtn: break; case R.id.updateBtn: break; case R.id.deleteBtn: break; default: break; } } }
到此,第一步结束。
第二步:数据库基本操作:增!
其实,使用GreenDAO操作是非常套路的,非常套模式的首先我们先声明一下以下我们需要使用到的4个大类:
private DevOpenHelper helper; private DaoMaster master; private DaoSession session; private PersonDao dao;
以上四个类呢是我们每次使用GreenDAO都需要使用到的,其实重要的是他们的实例化的方法,我们先看一下这四个大类实例化的代码:
private void openDb() { helper = new DaoMaster.DevOpenHelper(MainActivity.this, "person.db",null); master = new DaoMaster(helper.getWritableDatabase()); session = master.newSession(); dao = session.getPersonDao(); }
因为我们每次对数据操作都要使用这四个类。所以 为直接能够调用,我们把实例化他们的代码封装到了openDb()方法中。
好了,下面我们就真正的要增加数据了,其实方法很简单,我们先看代码:
private void addData() { Person person = new Person(Long.valueOf(mId.getText().toString()), mName.getText().toString(), Integer.valueOf(mAge.getText() .toString()), null, new Date()); Long msg = dao.insert(person); mId.setText(""); mName.setText(""); mAge.setText(""); Log.i("MAIN_TAG", "添加成功 personID : " + msg); }
看到以上代码,我们把它封装成了addData()方法
首先,我们创建了一个Person对象,我们将它的信息设置为了用户输入的ID、姓名和年龄,性别我们先设为空,创建日期我们使用了Date()类
然后我们执行dao.insert()方法将我们新建的Person对象就添加到数据库了,然后我们拿到了他的一个Long型返回值,用于打印数据有没有被添加上
然后我们把输入框清空
好,这样初始化数据库操作相关类的方法已经封装好
添加数据的方法也封装好了,下面我们对方法进行一个组合:
< d530 span class="hljs-annotation">@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); openDb();// 实例化相关类 init();// 初始化控件 }
case R.id.addBtn: addData();// 添加数据 break;
好,在我们运行程序之前,我们先为logcat设置一个输出的标签:
好了,我们运行程序,添加三条数据,我们可以看到MAIN_TAG标签下有如下信息:
这就说明,我们的数据已经添加成功!还挺简单的吧
好了,这样我们的增加操作就完成了!
第三步:数据库基本操作:查!
为了打印我们查询到的数据,我们需要为Person类添加toString()方法我们在Person.java里,添加如下方法:
@Override public String toString() { return "Person [id=" + id + ", name=" + name + ", age=" + age+ ", sex=" + sex + ", date=" + date + "]"; }
然后我们封装一个queryData()方法,先看代码:
private void queryData() { list = dao.queryBuilder().list(); Log.i("MAIN_TAG", "查询结果:" + list); }
其中list类的声明我们拿了出来以便使用:
private List<Person> list其实关键代码只是
dao.queryBuilder()
我们将方法返回值赋给了一个list对象,以便打印,
然后我们将方法添加到查询Button的监听事件里:
case R.id.queryBtn: queryData();// 查询数据(全部) break;
好,我们运行,点击查询,就看到控制台打印了刚才增加的数据了:
好,查询操作就此告一段落,具体的查询还有好多种情况,下一篇博客我们再慢慢学习!
第四步:数据库基本操作:改!
首先,我们封装了一个带Person对象参数的方法:private void updateDate(Person person) { dao.insertOrReplace(person); }
其实只是一行代码,下面我们把他添加到修改Button的监听事件里:
case R.id.updateBtn: list = dao.queryBuilder().list(); Person person = list.get(0); person.setName("小白"); person.setAge(0); updateDate(person); break;
这里我们先实例化了list,然后我们将list中第1个数据的名字修改为“小白”,年龄修改为“0”,然后执行我们封装的updateDate()方法。
好,我们运行,先点击修改,再点击查询,我们看到logcat打印以下信息:
我们可以看到ID为201701的信息,名字变成了“小白”,年龄变成了“0”。
好,修改数据,完成!
第五步:数据库基本操作:删!
首先,我们封装了一个delete()方法,代码如下:private void deleteData() { list = dao.queryBuilder().list(); for (Person person : list) { dao.delete(person); } }
我们可以看到,我们先实例化了list,然后遍历list中的所有数据,执行dao.delete()方法,这样就把数据库里的数据删除了!
我们运行,先点击删除,再点击查询,我们可以看到logcat打印了以下信息:
我们可以看到,数据库中的信息已经空了!这样,删除操作就完成了!
到此,我们在eclipse环境下,对数据库的操作就学习完成了!相关代码,点击下载链接即可免费下载
接下来的文章,我们将一起学习一下GreenDAO在AndroidStudio环境下的基本操作,一起期待吧!
往期回顾:Android数据库框架GreenDAO之「01.初始GreenDAO」
彩蛋!!
看到这里的朋友你有福利了!我的个人微信公众号上线了!众多热门技术文章,众多有趣好玩的脑洞,请扫描下方二维码关注!
程序猿干货分享,欢迎您的到来!
相关文章推荐
- GreenDAO之「03.AS环境下的基本操作」
- Android操作数据库的框架-GreenDao基本使用记录
- 用户shell环境基本操作
- Linux环境编程--文件基本操作
- Bash shell基本操作命令和环境变量命令(笔记)
- MongoDB 在windows shell环境下的基本操作和命令的使用示例(四)
- MongoDB 在windows shell环境下的基本操作和命令的使用示例(三)
- 泛型dao架构实现,封装crud等基本操作
- jpa入门之环境搭建和CRUD基本操作
- linux命令基本操作以及Java的安装与环境的配置
- MySQL for Mac 安装和基本操作(包含后期的环境变量设置)
- Android Studio平台使用GreenDao操作数据库
- 泛型dao架构实现,封装crud等基本操作
- RHEL6入门系列之六,桌面环境下的基本操作
- RHEL6入门系列之六,桌面环境下的基本操作 推荐
- phonegap环境配置与基本操作
- 用户shell环境基本操作2
- VC环境下使用HALCON图像处理库的配置与基本操作
- jpa入门之环境搭建和CRUD基本操作
- MongoDB 在windows shell环境下的基本操作和命令的使用示例(一)