我的Android入门之路:一、初步接触之GreenDAO学习使用体验

最近开始正式接触Android开发,这是首次使用博客,也是初步接触GreenDAO,写的会很初级。大家如果看了我的文章,不论是文章本身的不足,还是代码本身的缺陷,都欢迎帮忙多多指出,先在此谢过。同时也希望我的文章能帮到同样刚开始接触GreenDAO的朋友。

本文的内容是利用GreenDAO对SQLite数据库中的表单进行创建并实现增删查改等功能。
首先是对于GreenDAO的简单介绍:
GreenDAO是一个可以帮助Android开发者快速将Java对象映射到SQLite数据库的表单中的ORM解决方案,
通过使用一个简单的面向对象API,开发者可以对Java对象进行存储、更新、删除和查询。
GreenDAO的主要设计目标:最大性能(最快的Android ORM)、易于使用API、高度优化、最小内存消耗。
GreenDAO官网:http://greendao-orm.com/
项目下载地址:https://github.com/greenrobot/greenDAO(或者官网)

官方Demo里共有六个工程目录,分别为:
(1).DaoCore:库目录,即jar文件greendao-1.3.7.jar的代码;
(2).DaoExample:android范例工程;
(3).DaoExampleGenerator:DaoExample工程的DAO类构造器,java工程;
(4).DaoGenerator:DAO类构造器,java工程;
(5).DaoTest、PerformanceTestOrmLite:其他测试相关的工程。

学习使用步骤:

一、DAO类的构造

首先需要新建一个java工程来生成DAO类文件,该工程需要导入greendao-generator.jar和freemarker.jar文件到项目中。(右键当前项目–Build Path–Configure Build Path–Libraries–Add External JARs即可导入)
以下是我本次项目中建立的java工程,目标是设置一个有关学生信息的实体类。

package org.yijing.test;


import de.greenrobot.daogenerator.DaoGenerator;
import de.greenrobot.daogenerator.Entity;
import de.greenrobot.daogenerator.Schema;

public class Make {
   

    public static void main(String[] args) throws Exception {

        //该方法第一个参数用来更新数据库版本号,第二个参数为要生成的DAO类所在包路径
        Schema schema = new Schema(3, "org.yijing.test");

        //进行建表
        addInfo(schema);
        //设置要生成DAO文件的目标工程的项目名称,其中src-gen这个目录名需要在运行前手动创建,否则报错
        new DaoGenerator().generateAll(schema, "../StudentInfo/src-gen");
    }

    //设置名为StudentInfo(学生信息)的实体对象包含有“(自增长)ID”、“学号”、“姓名”、“年龄”等属性
    private static void addInfo(Schema schema) {
        Entity info = schema.addEntity("StudentInfo");
        info.addIdProperty().autoincrement();
        info.addIntProperty("number");
        info.addStringProperty("name").notNull();
        info.addIntProperty("age");
    }
}
代码中每一步骤的实现目标均已注释。
其中默认表名就是类名,也可以自定义表名:
info.setTableName("StudentInformation");

若运行后出现以下的提示说明DAO文件自动生成成功了,刷新一下StudentInfo项目即可看到。
greenDAO Generator
Copyright 2011-2014 Markus Junginger, greenrobot.de. Licensed under GPL V3.
This program comes with ABSOLUTELY NO WARRANTY
Processing schema version 3...
Written J:\Android\work\workspace\StudentInfo\src-gen\org\yijing\test\StudentInfoDao.java
Written J:\Android\work\workspace\StudentInfo\src-gen\org\yijing\test\StudentInfo.java
Written J:\Android\work\workspace\StudentInfo\src-gen\org\yijing\test\DaoMaster.java
Written J:\Android\work\workspace\StudentInfo\src-gen\org\yijing\test\DaoSession.java
Processed 1 entities in 113ms

二、表的增删查改

增删查改其实相当方便,完全的面向对象,不需要涉及到任何的sql语言。
以下就是我本次项目的主体,也就是对增删查改的具体实现,功能详细来说有五:
1.添加学生信息,包括学号、姓名、年龄
2.通过学号查询对应学生的姓名
3.根据ID顺序每五人一组,通过分组号查询对应五名学生的姓名
4.输入学号,删除对应的学生信息
5.输入学号,以及修改后的名字,完成该学号对应的学生姓名的修改

具体代码如下(先上完整代码,再逐步分析):

package org.yijing.test.studentinfo;

import java.util.List;

import org.yijing.test.DaoMaster;
import org.yijing.test.DaoMaster.DevOpenHelper;
import org.yijing.test.DaoSession;
import org.yijing.test.StudentInfo;
import org.yijing.test.StudentInfoDao;
import org.yijing.test.StudentInfoDao.Properties;

import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import de.greenrobot.dao.query.QueryBuilder;

public class MainActivity extends ActionBarActivity {

    private SQLiteDatabase db;

    private EditText addNumberText, addNameText, addAgeText, queryNumberText,
            queryGroupText, delNumberText, alterNumberText, alterNameText;
    private TextView queryNameText, queryGroupNameText,allMemberQuantityText;

    private DaoMaster daoMaster;
    private DaoSession daoSession;
    private StudentInfoDao studentInfoDao;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值