• greendao对SQLite数据库的增删改查操作


    利用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;
    }
  • 相关阅读:
    数据库日志文件太大的解决方法及原理
    邮件发送组件
    DataConnectionDialog 旧事重提
    从LINQ实例解析LINQ的另类用法,解决多条件组合问题
    重开BLOG.
    找个搜索结果总数原来可以用到这么多的技术
    Discuz3.2与Java 项目整合单点登陆
    一点感触
    Java 处理word文档后在前端展示
    大数据: 完全分布式Hadoop集群HBase安装
  • 原文地址:https://www.cnblogs.com/evolutionoflicorice/p/5751087.html
Copyright © 2020-2023  润新知