Hello greenDAO(SQLite)
一、配置Gradle Scripts:
1.1、build.gradle(Project:*****)
buildscript {
repositories {
google()
jcenter()
mavenCentral() // add repository
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'//3.3.2 会告警
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin
}
}
1.2、build.gradle(Module:app)
apply plugin: 'com.android.application'
apply plugin: 'org.greenrobot.greendao' // apply plugin greendao {
schemaVersion //数据库版本号
daoPackage 'com.trysqlite.greenDAO' // 设置包名(这里自己定义一下你的命名空间位置)
targetGenDir 'src/main/java' //设置 生成代码位置
generateTests false //设置为true以自动生成单元测试。
// targetGenDirTests 'src/main/java' //应存储生成的单元测试的基本目录。默认为 src / androidTest / java。
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3' testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' implementation 'org.greenrobot:greendao:3.2.2'
implementation 'org.greenrobot:greendao-generator:3.0.0'
}
二、创建存储对象类(记住要@Entity,这样才会被构建相对应的操作类):
@Entity
public class teacher {
@Id(autoincrement = true)
Long id;
@Property(nameInDb = "name") //设置了,数据库中的表格属性名为"name",如果不设置,数据库中表格属性名为"NAME"
private String name;
}
三、菜单栏选择Build->Make Project
这里将生成:
- DaoMaster:使用GreenDAO的入口点
- DaoSession:管理特定架构的所有可用DAO对象:说白了就是增删查改数据库操作
- teacherDao:数据访问对象(第二部写的实体类)
四、新建一个继承Application的类,对GreenDao进行初始化
public class MyApplication extends Application {
private static DaoSession daoSession; @Override
public void onCreate() {
super.onCreate(); //进入程序时初始化数据库
settupDatabase();
}
private void settupDatabase() {
//创建数据库
DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "its_android.db", null);
//获取可写数据库
SQLiteDatabase db = helper.getWritableDatabase();
//获取数据库对象
DaoMaster daoMaster = new DaoMaster(db);
//获取Dao对象管理者
daoSession = daoMaster.newSession();
} public static DaoSession getDaoInstant() {
return daoSession;
}
}
五、做个预处理好的DBHelper
public class DBHelper {
static DaoSession daoSession = app.getDaoInstant(); //增
public void Addteacher(teacher teacher) {
daoSession.getTeacherDao().insert(teacher);
} //删
public void Deleteteacher(teacher teacher) {
daoSession.getTeacherDao().delete(teacher);
} //查
public List<teacher> Queryteacher(teacher teacher) {
QueryBuilder<teacher> qb = daoSession.queryBuilder(teacher.class);
QueryBuilder<teacher> teacherQueryBuilder = qb.where(teacherDao.Properties.Name.eq("一")).orderAsc(teacherDao.Properties.Name);
List<teacher> teacherList = teacherQueryBuilder.list(); //查出当前对应的数据
return teacherList;
} //改
public void Updateteacher(teacher teacher) {
daoSession.getTeacherDao().update(teacher);
} }
Hello greenDAO(SQLite)的更多相关文章
- Qt之操作数据库(SQLite)实例
QtSql模块提供了与平台以及数据库种类无关的访问SQL数据库的接口,这个接口由利用Qt的模型视图结构将数据库与用户界面集成的一套类来支持.QSqlDatabase对象象征了数据库的关联.Qt使用驱动 ...
- (转)HTML5 本地数据库(SQLite) 示例
HTML5 本地数据库(SQLite) 示例 2012-05-07 16:21:13 标签:SQLite HTML5本地数据库 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作 ...
- 内存数据库(sqlite)和 map数据结构 做缓存对比
背景: 今天看文档时发现说android的SQLITE在创建时,如果不指定name,则会创建in-memory的数据库.且当该db被close时,才会释放. 那这样来说,完全可以用来做内存缓存嘛. 用 ...
- android中的数据库操作(SQLite)
android中的数据库操作 android中的应用开发很难避免不去使用数据库,这次就和大家聊聊android中的数据库操作. 一.android内的数据库的基础知识介绍 1.用了什么数据库 an ...
- Android数据库(sqlite)之Room
说在前面: 1.使用Room需要添加的依赖: dependencies { def room_version = "2.2.3" implementation "andr ...
- 第一次接触数据库(SQLite)
第一次接触,学了创建列表 + 行的删除 + 内容的更改 + 删除列表 第一次接触要知道一些基本知识 NULL(SQL) = Nnoe(python) #空值 INTEGER = int #整数 R ...
- HTML5本地数据库(SQLite)示例
本文转载自http://blog.sina.com.cn/s/blog_641cf27f01016pm5.html 按照国内一HTML5先行者的例子仿写了一个用HTML5 API来操作本地SQLite ...
- Qt之操作数据库(SQLite)
SQLite 简介 SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需 ...
- 在有道词典程序文件夹发现一个后缀名为sql的数据库(SQLite)
缘起 在清理电脑磁盘的时候,看一看各安装文件夹有占用了多大容量,发现有道词典居然达140MB了,于是进去看看. 发现个有趣的文件:XXX.sql. 首先我们看一看它的安装文件夹的结构: Dict └─ ...
随机推荐
- SpringMVC的入门示例
1.配置流程说明 第一步:导入包 第二步:构建一个请求,编写请求页面 第三步:配置核心控制器 第四步:构建一个业务控制器 第五步:编写Spring配置文件 第六步:编写一个返回页面 2.配置流程--- ...
- 在Pycharm中自动添加时间日期作者等信息
1.按照下面路径以此打开File→→Settings→→Editor→→File and code Templates 右侧找到Python Script,如下图 2.设置相关代码如下 ##!/usr ...
- ORACLE 根据 sql_id 查询绑定变量的传入值
查询当前查询: select b.NAME,b.POSITION,b.DATATYPE_STRING,b.VALUE_STRING,b.LAST_CAPTUREDfrom v$sql_bind_cap ...
- node+mongoose+vue
app.js 入门 let express = require('express'); let app = express(); let allowCrossDomain = function (re ...
- python之使用 wkhtmltopdf 和 pdfkit 批量加载html生成pdf,适用于博客备份和官网文档打包
0. 1.参考 Python 爬虫:把廖雪峰教程转换成 PDF 电子书 https://github.com/lzjun567/crawler_html2pdf wkhtmltopdf 就是一个非常好 ...
- Crypto支付宝模块的安装
沙箱环境地址:https://openhome.alipay.com/platform/appDaily.htm?tab=info 1.将Crypto放到site-packages下 2.OSErro ...
- 用PHPExcel导出导入Excel
thinkPHP5.0框架 查询数据库调用Excel方法 public function exportlist(){ $orderModel = new OrderModel(); if($start ...
- 51Nod1222 最小公倍数计数 数论 Min_25 筛
原文链接https://www.cnblogs.com/zhouzhendong/p/51Nod1222.html 题意 给定 $a,b$, 求 $$\sum_{n=a}^b \sum_{i=1}^n ...
- Selenium断言的使用,等待
自动化测试常用断言的使用方法(python) 自动化测试中寻找元素并进行操作,如果在元素好找的情况下,相信大家都可以较熟练地编写用例脚本了,但光进行操作可能还不够,有时候也需要对预期结果进行判断. 这 ...
- IMCASH:看着朋友赚钱进币圈 我凭啥亏钱? 4月29日币圈报告
即将过去的四月份,币圈的行情总体是不错的,比特从4000附近最高涨到了5600以上的位置,当前也在5200左右,而成交量更是创出历史天量(4月3日,全球加密货币市场的交易量达890亿美元,创历史天量) ...