使用 greenDao 框架 操作数据库
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 框架 操作数据库相关推荐
- yii mysql_Yii2框架操作数据库的方法分析【以mysql为例】
本文实例讲述了Yii2框架操作数据库的方法.分享给大家供大家参考,具体如下: 准备数据库 DROP TABLE IF EXISTS `pre_user`; CREATE TABLE `pre_user ...
- Android原生SQLite操作以及greenDao框架操作SQLite
本文分为2个大的方面来讲SQLite操作:原生操作,框架操作 原生操作 首先我们要创建一个数据库打开帮助类 ,目的是创建数据库和表,升级数据库 import android.content.Conte ...
- flask orm 数据库_Flask:使用ORM框架操作数据库
在Flask中并没有限制我们使用哪种方式来操作数据库,如果使用原生SQL的方式来操作数据库,随着项目代码量的提升会发现有大量操作数据库的冗余代码,以及大量SQL语句与逻辑代码杂糅在一起不利于核心代码的 ...
- medoo php 教程,Medoo框架操作数据库
摘要:Medoo框架好处:轻量 简单 强大 兼容 安全 免费Medoo框架使用步骤:1.安装:1>通过官网下载 2>使用composer2.配置 #1.导入框架 requir ...
- 记录Python使用Django框架操作数据库遇到的问题与流程
** python学习使用Django框架连接mysql数据库的步骤和遇到的一些问题 ** 配置数据库: 项目的settings.py文件的77行修改如下: DATABASES = {'default ...
- python数据库操作框架_python bottle 框架操作数据库
python操作mysql数据库用MySQLdb模板,操作postgresql则用psycopg2模块 安装MySQLdb(用yum安装,好像只能与mysql5.1版本配合使用):yum instal ...
- Java操作数据库方式五MyBatis使用入门
##概述 ##MyBatis是什么 MyBatis是一个持久层框架,作用是在java项目中操作数据库. ##MyBatis介绍 MyBatis 本是apache的一个开源项目iBatis, 2010年 ...
- Asp.Net MVC 自定义的MVC框架(非EF操作数据库)
一些废话:在北京辞职回家不知不觉中已经半年多了,这半年中有过很多的彷徨,困惑,还有些小小难受.半年时间算是我人生以来遇到过的最困苦的时候.理想的工作跟我擦肩而过,驾照也没有考过,年后这一改革...,毕 ...
- 使用Spring JDBC框架连接并操作数据库
在前一篇博文JAVA通过JDBC连接并操作MySQL数据库中,我们知道如何通过JDBC连接并操作数据库,但是请看程序,整个程序连接数据库和关闭数据库占了很大一部分代码量,而且每次我们执行一下数据库操作 ...
最新文章
- 基于深度学习的脑电图识别 综述篇(三)模型分析
- 由键盘下陷引起的奇怪事件
- 什么叫Web前端?web前端HTML5学习方法分享
- python的代码有哪些_Python有哪些有趣的代码呢,这些代码让
- 数据结构之查找算法:分块查找
- 计算机网络之网络层:11、移动IP
- FFMpeg写MP4文件例子分析
- 在线教育平台HTML代码,在线教育学习管理平台html前端源码模板
- Altium_Designer的使用
- 解决阿里云轻量应用服务器不能安装应用
- python提取关键词_【Python工具】30万关键词提取疑问词只需2秒,效率高到飞起!...
- Oracle数据库(五)用户 ,角色,权限
- Vertica数据库介绍
- 基于SSM的校园音乐点歌系统平台
- python爬虫学习笔记 3.9 (了解参考:训练Tesseract)
- 机器学习——概念理解之IoU
- 图数据库OrientDB-基础篇
- 单服务器配置部署Visual Studio 2005 Team Foundation Server步骤
- 人工智能的“黑镜”——计算机人脸识别!
- php ado excel,求助::用ADO的方法修改EXCEL中单元格中的数据
热门文章
- Boost:基于boost::asio的延迟tcp服务器测试程序
- ITK:处理3D图像的2D切片
- VTK:可视化算法之BandedPolyDataContourFilter
- VTK:几何对象之ConeDemo
- OpenCV检测平面物体
- OpenCV在图像上添加边框borders
- C++Runge-Kutta龙格-库塔法求非线性常微分方程的解(附完整源码)
- C++若不想使用编译器自动生成的函数,就该明确拒绝
- SpringBoot中Tomcat配置(学习SpringBoot实战)
- fiddler几种功能强大的用法(一)转自:http://www.cnblogs.com/chenshaoping/p/5785010.html