0.效果图

步骤:

1.新建java项目,生成实体类等代码.需要的jar包:  freemarker-2.3.10.jar , greendao-generator-1.3.1.jar

import java.io.IOException;import de.greenrobot.daogenerator.DaoGenerator;
import de.greenrobot.daogenerator.Entity;
import de.greenrobot.daogenerator.Schema;public class Test1 {public static void main(String[] args) throws IOException, Exception {//第一个参数用来更新数据库版本号,第二个参数为要生成的DAO类所在包路径Schema schema = new Schema(1, "de.bvb.db");//创建表
        addNote(schema);//设置生成的文件文件存放的位置 new DaoGenerator().generateAll(schema, "./src");}private static void addNote(Schema schema) {Entity note = schema.addEntity("Student");//表名note.addIdProperty();//自增字段note.addStringProperty("name").notNull();note.addIntProperty("age");}
}

2.android项目代码 (db包下面代码为java项目生成的)

2.1 MyApplication中对数据库进行初始化的代码

    private static DaoMaster daoMaster;private static DaoSession daoSession;//取得DaoMasterpublic static DaoMaster getDaoMaster(Context context) {if (daoMaster == null) {DaoMaster.OpenHelper helper = new DaoMaster.DevOpenHelper(instance, "dbName", null); //dbName 为数据库名daoMaster = new DaoMaster(helper.getWritableDatabase());}return daoMaster;}//取得DaoSessionpublic static DaoSession getDaoSession() {if (daoSession == null) {if (daoMaster == null) {daoMaster = getDaoMaster(instance);}daoSession = daoMaster.newSession();}return daoSession;}

2.2DBHelper代码

package de.bvb.util;import java.util.List;import android.content.Context;
import de.bvb.MyApplication;
import de.bvb.db.DaoSession;
import de.bvb.db.Student;
import de.bvb.db.StudentDao;
import de.greenrobot.dao.query.QueryBuilder;public class DBHelper {private static DBHelper instance;private StudentDao studentDao;private DBHelper() {}//单例public static DBHelper getInstance() {if (instance == null) {instance = new DBHelper();DaoSession daoSession = MyApplication.getDaoSession();instance.studentDao = daoSession.getStudentDao();}return instance;}public void add(Student student) {studentDao.insert(student);}public void update(Student student) {studentDao.update(student);}public void delete(Student student) {studentDao.delete(student);}public List<Student> query() {return studentDao.queryBuilder().list();}
}

3.调用的方法

 @Overridepublic void onClick(View v) {Student student = new Student();switch (v.getId()) {case R.id.btnAdd:student.setName(etName.getText().toString().trim());student.setAge(Integer.parseInt(etAge.getText().toString().trim()));DBHelper.getInstance().add(student);break;case R.id.btnUpdate:student.setId(Long.parseLong(tvId.getText().toString().trim()));student.setName(etName.getText().toString().trim());student.setAge(Integer.parseInt(etAge.getText().toString().trim()));DBHelper.getInstance().update(student);break;case R.id.btnDelete:student.setId(Long.parseLong(tvId.getText().toString().trim()));student.setName(etName.getText().toString().trim());student.setAge(Integer.parseInt(etAge.getText().toString().trim()));DBHelper.getInstance().delete(student);break;case R.id.btnQuery:list = DBHelper.getInstance().query();adapter.setData(list);break;}}

4.完整代码(基于eclipse)

转载于:https://www.cnblogs.com/Westfalen/p/6131905.html

使用 greenDao 框架 操作数据库相关推荐

  1. yii mysql_Yii2框架操作数据库的方法分析【以mysql为例】

    本文实例讲述了Yii2框架操作数据库的方法.分享给大家供大家参考,具体如下: 准备数据库 DROP TABLE IF EXISTS `pre_user`; CREATE TABLE `pre_user ...

  2. Android原生SQLite操作以及greenDao框架操作SQLite

    本文分为2个大的方面来讲SQLite操作:原生操作,框架操作 原生操作 首先我们要创建一个数据库打开帮助类 ,目的是创建数据库和表,升级数据库 import android.content.Conte ...

  3. flask orm 数据库_Flask:使用ORM框架操作数据库

    在Flask中并没有限制我们使用哪种方式来操作数据库,如果使用原生SQL的方式来操作数据库,随着项目代码量的提升会发现有大量操作数据库的冗余代码,以及大量SQL语句与逻辑代码杂糅在一起不利于核心代码的 ...

  4. medoo php 教程,Medoo框架操作数据库

    摘要:Medoo框架好处:轻量 简单 强大 兼容 安全 免费Medoo框架使用步骤:1.安装:1>通过官网下载  2>使用composer2.配置    #1.导入框架    requir ...

  5. 记录Python使用Django框架操作数据库遇到的问题与流程

    ** python学习使用Django框架连接mysql数据库的步骤和遇到的一些问题 ** 配置数据库: 项目的settings.py文件的77行修改如下: DATABASES = {'default ...

  6. python数据库操作框架_python bottle 框架操作数据库

    python操作mysql数据库用MySQLdb模板,操作postgresql则用psycopg2模块 安装MySQLdb(用yum安装,好像只能与mysql5.1版本配合使用):yum instal ...

  7. Java操作数据库方式五MyBatis使用入门

    ##概述 ##MyBatis是什么 MyBatis是一个持久层框架,作用是在java项目中操作数据库. ##MyBatis介绍 MyBatis 本是apache的一个开源项目iBatis, 2010年 ...

  8. Asp.Net MVC 自定义的MVC框架(非EF操作数据库)

    一些废话:在北京辞职回家不知不觉中已经半年多了,这半年中有过很多的彷徨,困惑,还有些小小难受.半年时间算是我人生以来遇到过的最困苦的时候.理想的工作跟我擦肩而过,驾照也没有考过,年后这一改革...,毕 ...

  9. 使用Spring JDBC框架连接并操作数据库

    在前一篇博文JAVA通过JDBC连接并操作MySQL数据库中,我们知道如何通过JDBC连接并操作数据库,但是请看程序,整个程序连接数据库和关闭数据库占了很大一部分代码量,而且每次我们执行一下数据库操作 ...

最新文章

  1. 基于深度学习的脑电图识别 综述篇(三)模型分析
  2. 由键盘下陷引起的奇怪事件
  3. 什么叫Web前端?web前端HTML5学习方法分享
  4. python的代码有哪些_Python有哪些有趣的代码呢,这些代码让
  5. 数据结构之查找算法:分块查找
  6. 计算机网络之网络层:11、移动IP
  7. FFMpeg写MP4文件例子分析
  8. 在线教育平台HTML代码,在线教育学习管理平台html前端源码模板
  9. Altium_Designer的使用
  10. 解决阿里云轻量应用服务器不能安装应用
  11. python提取关键词_【Python工具】30万关键词提取疑问词只需2秒,效率高到飞起!...
  12. Oracle数据库(五)用户 ,角色,权限
  13. Vertica数据库介绍
  14. 基于SSM的校园音乐点歌系统平台
  15. python爬虫学习笔记 3.9 (了解参考:训练Tesseract)
  16. 机器学习——概念理解之IoU
  17. 图数据库OrientDB-基础篇
  18. 单服务器配置部署Visual Studio 2005 Team Foundation Server步骤
  19. 人工智能的“黑镜”——计算机人脸识别!
  20. php ado excel,求助::用ADO的方法修改EXCEL中单元格中的数据

热门文章

  1. Boost:基于boost::asio的延迟tcp服务器测试程序
  2. ITK:处理3D图像的2D切片
  3. VTK:可视化算法之BandedPolyDataContourFilter
  4. VTK:几何对象之ConeDemo
  5. OpenCV检测平面物体
  6. OpenCV在图像上添加边框borders
  7. C++Runge-Kutta龙格-库塔法求非线性常微分方程的解(附完整源码)
  8. C++若不想使用编译器自动生成的函数,就该明确拒绝
  9. SpringBoot中Tomcat配置(学习SpringBoot实战)
  10. fiddler几种功能强大的用法(一)转自:http://www.cnblogs.com/chenshaoping/p/5785010.html