背景
实现过程
MappedStatement ms = new MappedStatement.Builder(configuration, msId, sqlSource, SqlCommandType.SELECT)
.resultMaps(new ArrayList<ResultMap>() {
{
add(new ResultMap.Builder(configuration, "defaultResultMap", resultType, new ArrayList<ResultMapping>(0)).build());
}
})
.build();
public List<Map<String, Object>> selectList(String sql, Object value) {
log.info("selectList sql:{},params:{}", sql, JSONUtil.toJsonStr(value));
Class<?> parameterType = value != null ? value.getClass() : null;
String msId = mapperStatementBuilder.selectDynamic(sql, parameterType);
return sqlSession.selectList(msId, value);
}
使用说明
public static void main(String[] args) {
Configuration configuration = new Configuration();
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);
RowSqlMapper rowSqlMapper = new RowSqlMapper(sqlSessionFactory.openSession());
List<Map<String, Object>> maps = rowSqlMapper.selectList("select * from ir_session_param");
HashMap<String, Object> params = new HashMap<>();
params.put("id", "111");
List<Map<String, Object>> maps1 = rowSqlMapper.selectList("<script> select * from temp_table where id = #{id} <if test= \"dept_name != null\">" +
" and dept_name= #{dept_name} </if> </script>", params);
}
总结