利用greendao操作数据库时,都是以对象或者对象的list来进行增删改查的操作,操作的结果都是用一个list来接收的!!!

1.增加一条记录

Stu stu01=new Stu();
stu01.setStuID(11);
stu01.setStuName("张三");
stu01.setFlag(true);
stuDao().insert(stu01);

2.增加多条记录

List<Stu> list = new ArrayList<>();
Stu stu01=new Stu();
stu01.setStuID(11);
stu01.setStuName("张三");
stu01.setFlag(true);
list.add(stu01); Stu stu02=new Stu();
stu02.setStuID(2);
stu02.setStuName("王五");
stu02.setFlag(true);
list.add(stu02); Stu stu03=new Stu();
stu03.setStuID(Long.valueOf(5));
stu03.setStuName("李四");
stu03.setFlag(true);
list.add(stu03);
stuDao().insertInTx(list);

3.删除一条记录

(1)按对象删除

     stuDao().delete(stu01);

(2)按主键删除(表中需建一个long类型的主键)

      stuDao().deleteByKey(Long.valueOf(5));

4.删除多条记录(表中需建一个long类型的主键)

List<Stu> list = new ArrayList<>();
Stu stu01=new Stu();
stu01.setId(Long.valueOf(1));
stu01.setStuID(11);
stu01.setStuName("张三");
stu01.setFlag(true);
list.add(stu01);
Stu stu02=new Stu();
stu02.setId(Long.valueOf(2));
stu02.setStuID(2);
stu02.setStuName("王五");
stu02.setFlag(true);
list.add(stu02);
stuDao().deleteInTx(list);

5.全部删除

stuDao().deleteAll();

6.修改一条记录(表中需建一个long类型的主键)

Stu stu=stu01;
stu.setStuName("张小磊");
stuDao().update(stu);

7.修改多条记录

List<Stu> list = new ArrayList<>();
Stu stu=stu01;
stu.setStuName("张小磊");
list.add(stu); stu=stu02;
stu.setStuName("招儿");
list.add(stu);
stuDao().updateInTx(list);

8.查询一条记录

根据一个字段查询另一个字段

public static String queryNameByID(long ID) {
List<Stu> stus = stuDao().queryRaw("where ID=?", String.valueOf(ID));
Stu stu = stus.get(0);
String name = stu.getName();
return name;
}

9.查询多条记录

(1)查询出当一个字段为多个值的情况下所有的记录

public static List<Stu> queryStus() {
List<Stu> stus = new ArrayList<>();
QueryBuilder queryBuilder = stuDao().queryBuilder();
queryBuilder.whereOr(StuDao.Properties.StuID.eq(2), StuDao.Properties.StuID.eq(3));
stus = queryBuilder.list();
return stus;
}

(2)对查询的记录进行升序(降序)排序

public static List<Stu> queryStus() {
List<Stu> stus = new ArrayList<>();
QueryBuilder queryBuilder = stuDao().queryBuilder();
queryBuilder.where(StuDao.Properties.Flag.eq(true)).orderAsc(StuDao.Properties.StuID);
stus = queryBuilder.list();
return stus;
}

(3)嵌套查询

public static List<Stu> queryStu() {
List<Stu> stus = new ArrayList<>();
QueryBuilder queryBuilder = stuDao().queryBuilder(); queryBuilder.where(StuDao.Properties.Flag.eq(true),
queryBuilder.or(StuDao.Properties.StuName.eq("张小磊"),
StuDao.Properties.StuName.eq("王五"))); stus = queryBuilder.list();
return stus;
}

greendao对SQLite数据库的增删改查操作的更多相关文章

  1. PHP程序中使用PDO对象实现对数据库的增删改查操作的示例代码

    PHP程序中使用PDO对象实现对数据库的增删改查操作(PHP+smarty) dbconn.php <?php //------------------------使用PDO方式连接数据库文件- ...

  2. python web.py操作mysql数据库,实现对数据库的增删改查操作

    使用web.py框架,实现对mysql数据库的增删改查操作: 该示例代码中连接的是本地数据库testdb,user表,表结构比较简单,只有两个字段:mobile和passwd,类型均为字符型 实际应用 ...

  3. TP5.1:数据库的增删改查操作(基于面向对象操作)

    我们现实中对数据库的增删改查操作,都是使用模型类进行操作的(表名::),也就是面向对象操作,只有底层的代码用的是数据库操作(Db::table('表名')) 下面我将贴出模型类进行的增删改查操作,通过 ...

  4. 通过jdbc连接MySql数据库的增删改查操作

    一.获取数据库连接 要对MySql数据库内的数据进行增删改查等操作,首先要获取数据库连接 JDBC:Java中连接数据库方式 具体操作如下: 获取数据库连接的步骤: 1.先定义好四个参数 String ...

  5. android 对sqlite数据库的增删改查等各种操作

    转载:http://blog.csdn.net/vrix/article/details/6717090 package com.sqlite.main; import java.io.File; i ...

  6. Android中Sqlite数据库进行增删改查

    今天这篇文章写Sqlite数据库,通过一个小案例来完整讲一下数据库常见的CRUD操作. 先对知识点总结: SQLite数据库 轻量级关系型数据库 创建数据库需要使用的api:SQLiteOpenHel ...

  7. TP5.1:数据库的增删改查操作(基于数据库操作)

    1.在app/index/controller文件夹下创建一个文件,名为:Operation 注意:起名一定要避开关键字,例如:mysql,curd等等,如果使用关键字起名,会造成报错! 在Opera ...

  8. Android下利用SQLite数据库实现增删改查

    1: 首先介绍如何利用adb查看数据库 1: adb shell 2: cd /data/data/包名/databases 3:  sqlite3 数据库 4   接下来就可以进行数据库的sql语法 ...

  9. Android对Sqlite数据库的增删改查

    SqLite 数据库 Google 为我们提供了sqlite相关的api SqLiteOpenHelper 这是一个抽象的类 如果想要使用的话,需要其他的类去继承他 SqLiteDatabase 类 ...

随机推荐

  1. setContentView R can not be resovled

    原因:gen包下没有自动生成R.java的资源文件 解决办法:再次新建android application project,默认Theme为Holo Light With Dark Action B ...

  2. 关于MAC

    以太LAN网中发送的分组称做帧,包含7个字段 MAC帧格式 前同步码 SFD DA SA 长度或类型 数据域 CRC 7字节,物理层加入 帧首定界符,1字节 目的地址,6字节 源地址,6字节 2字节 ...

  3. My SQL的内连接,外链接查询

    1.内连接:只连接匹配的行. 2.左外连接:包含左边表的全部行,以及右边表中所有匹配的行,无论右边的表有没有和左边匹配的行,左边的所有行都必须要显示. 3.右外连接:包含右边表的全部行,以及左边表中所 ...

  4. 使用VirtualBox进行端口转发 连接数据库

    转自 http://blog.sina.com.cn/s/blog_484d87770102uxi6.html 使用VirtualBox很久了,很多用法都没有深钻,真的是不虚心学习啊.       由 ...

  5. sellsa

    我看见天空很蓝 就像你在我身边的温暖 生命有太多遗憾 人越成长越觉得孤单 我很想飞 多远都不会累 才明白爱得越深心就会越痛 我只想飞 在我的天空飞 我知道你会在我身边 回忆的画面 记录的语言 爱始终是 ...

  6. php工作笔记5-css定位

    1. CSS 定位机制 CSS 有三种基本的定位机制:普通流.浮动和绝对定位. 除非专门指定,否则所有框都在普通流中定位.也就是说,普通流中的元素的位置由元素在 (X)HTML 中的位置决定. 块级框 ...

  7. UI颜色值

    UI颜色值 http://xh.5156edu.com/page/z1015m9220j18754.html

  8. discuz中方法

    discuz中检验是否是邮箱 function isemail($email) { && strlen($email) <= && preg_match(&quo ...

  9. AsyncTask介绍

    AsyncTask介绍 AsyncTask比Handler更轻量级一些,适用于简单的异步处理. 使用AsyncTask时,注意重写以下几个方法: 1. doInBackground() 作用:执行后台 ...

  10. .NET Framework 框架的一些简单介绍

    20世纪90年代以来出现的3种典型的组件技术: 1)OMC(对象组件模型)的CORBA2)Microsoft的COM/DCOM3)Sun公司的JavaBeans 在2002年,微软发布了.NET框架的 ...