GUZZ 的 基本功能使用

这篇博客详细介绍了如何在Spring环境中使用GuzzBaseDao实现对User和DetailLog类的数据操作。包括通过SearchExpression进行条件查询,自定义SQL查询,批量插入,更新以及删除操作。示例代码展示了如何注入GuzzBaseDao并利用其提供的方法进行各种数据库交互。
摘要由CSDN通过智能技术生成

首先模拟类的基本实现

创建测试类 TestDaoImp 实现 TestDao 接口 在实现类中将 GuzzBaseDao 注入

@Component
public class TestDaoImp  implements TestDao  {
    @Autowired
    private GuzzBaseDao guzzBaseDao;
​
}

查询实现 :

方式一 : 使用 SearchExpression 来进行 where 语句判断

方式二 : 直接自己写SQL的xml文件通过Map类型来将参数保存用于实现查询

    @Override
    public List<User> getLongerThanCreateTime(User user, Date createTime) {
        SearchExpression se = SearchExpression.forClass(User.class);
        se.setPageSize(Integer.MAX_VALUE);
        if (User.getXgrq() == null){
            se.and(Terms.bigger("lrrq",createTime));
        }else {
            se.and(Terms.bigger("xgrq",createTime));
        }
        return guzzBaseDao.list(se);
    }
​
    @Override
    public List<User> getUserByBeginTime(Date beginTime) {
        Map<String, Object> params = new HashMap<>();
        params.put("beginTime", beginTime);
        return guzzBaseDao.list("test.selectUserByBeginTime" , params);
    }
​
    @Override
    public List<DetailLog> getDetailLogByrecordId(String recordId) {
        List<DetailLog> list = null;
        TransactionManager tm = guzzBaseDao.getTransactionManager();
        ReadonlyTranSession session = tm.openDelayReadTran();
        try {
            SearchExpression se = SearchExpression.forClass(DetailLog.class);
            se.and(Terms.eq("recordId", recordId));
            se.setPageNo(0);
            se.setPageSize(Integer.MAX_VALUE);
            se.setOrderBy("recordDetailedId asc");
            list = session.list(se);
        } finally {
            session.close();
        }
        return list;
    }

新增实现 :

    @Override
    public void insertDmGyDetailLog(List<User> users, Date createTime) {
        for (User user : users) {
            SearchExpression se = SearchExpression.forClass(User.class);
            se.and(Terms.eq("type",DmGyDetailLog.INSERTSWRY));
            se.and(Terms.eq("createTime",dmQxVo.getCreate_time()));
            User user = (User) guzzBaseDao.findObject(se);
            if (user == null){
                User newUser = new User();
                newUser.setCreateTime(user.getCreateTime());
                newUser.setType(USER.INSERTUSER);
                guzzBaseDao.insert(newUser);
            }
        }
    }
​
    @Override
    public void insertUserByType(List<User> users, Date createTime, int type) {
        for (User user : users) {
            User user = new User();
            user.setCreateTime(createTime);
            user.setType(type);
            user.insert(user);
        }
    }

修改实现 :

与查询一样可通过两种方式

方式一 : 使用 SearchExpression 来进行 where 语句判断

方式二 : 直接自己写SQL的xml文件通过Map类型来将参数保存用于实现查询

    @Override
    public void updateUser(List<User> users, Date createTime) {
        for (User user : users) {
            Map<String, Object> params = new HashMap<String, Object>();
            params.put("type",USER.UPDATEUSER);
            params.put("createTime",dmQxVo.getCreate_time());
            guzzBaseDao.getWriteTemplate().executeUpdate("test.updateUser", params);
        }
    }
​

删除实现 :

    @Override
    public boolean delete(User user) {
        return guzzBaseDao.getWriteTemplate().delete(user);
    }   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值