zoukankan      html  css  js  c++  java
  • 数据库框架 GreenDao

    https://www.jianshu.com/p/853401a7d02b

    坑:

    1、主键要使用Long类型,不要使用long类型,因为long一定不是null,而Long可以是null;

    如果使用long,那么实体类构造时,主键会自动是0,而不是null,这时插入会因为主键不唯一报错;

    如果使用Long,这时主键是null,而且表的主键是自增的,所以不会报错;

    2、QueryBuilder的使用

        //插入新的Message
        public void InsertMessage(MessageBean messageBean){
            QueryBuilder queryBuilder = mDaoSession.getMessageBeanDao().queryBuilder();
            //先删除原来的数据
            List<MessageBean> messageBeanList = queryBuilder.where(MessageBeanDao.Properties.User_id.eq(messageBean.getUser_id()),MessageBeanDao.Properties.Orther_user_id.eq(messageBean.getOrther_user_id())).list();
            for(MessageBean temp_message:messageBeanList){
                mDaoSession.getMessageBeanDao().deleteByKey(temp_message.getId());
            }
            //插入新数据
            mDaoSession.getMessageBeanDao().insert(messageBean);
        }
        //查询Message序列
        public List<MessageBean> GetMessage(long message_id){  //根据message_id取出最新的20条数据
            QueryBuilder queryBuilder = mDaoSession.getMessageBeanDao().queryBuilder();
            List<MessageBean> messageBeanList = new ArrayList<>();
            if(message_id < 0){  //直接取当前最新的20条数据
                messageBeanList = queryBuilder.orderDesc(MessageBeanDao.Properties.Id).limit(20).list();
            }
            else{
                messageBeanList = queryBuilder.where(MessageBeanDao.Properties.Id.lt(message_id)).orderDesc(MessageBeanDao.Properties.Id).limit(20).list();
            }
            return messageBeanList;
        }
  • 相关阅读:
    java中调用kettle转换文件
    开源游戏引擎体验
    cocos2d-x 托付模式的巧妙运用——附源代码(二)
    BEGINNING SHAREPOINT&#174; 2013 DEVELOPMENT 第9章节--client对象模型和REST APIs概览 Windows Phone
    redis String结构
    Redis 键命令
    Redis 基础命令
    linux curl 命令的使用
    将spring boot项目部署到tomcat容器中
    Redis常用命令
  • 原文地址:https://www.cnblogs.com/zhaozilongcjiajia/p/11076083.html
Copyright © 2011-2022 走看看