首先模拟类的基本实现
创建测试类 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);
}