MyBatis通用Mapper的通用example(排序)
Example example = new Example(TerminalType.class);
//注意:排序使用的是列名
example.setOrderByClause("TT_PROVIDERID DESC");
//如果需要其他条件
//掌机类型名字
//条件查询使用的是属性名
example.createCriteria().andEqualTo("terminalName", "计量现场服务终端");
//厂商id大于3
// example.createCriteria().andGreaterThan("id",3);
List<TerminalType> terminalTypeList = terminalTypeService.selectByExample(example);
接口
List<T> selectByExample(Object example);
实现类
@Override
public List<T> selectByExample(Object example) {
return baseMapper.selectByExample(example);
}
MyBatis通用Mapper技巧
一、排序
错误代码:
example.orderBy(BaseEntity.Field.GMTUpdate + " desc");
正确方式:
1、通过注解 @OrderBy(value = "DESC")
2、example.setOrderByClause("GMT_UPDATE DESC");注意此处是列名称,不是属性名。
二、处理oracle的null异常
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="cacheEnabled" value="false"/>
<!--解决插入null的时候报错问题-->
<setting name="jdbcTypeForNull" value="NULL"/>
</settings>
</configuration>
三、mapper的selectOne返回值可能是null
获取的结果应做null判定。
四、看代码
public interface SequenceMapper
{
@Select("select SEQ_${tableName}.nextval from dual")
int getSequence(@Param("tableName") String tableName);
}
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。