對JdbcTemplate再次簡單的一個封裝工具類
@Repository
public class JdbcTemplateRepository {
private static final Logger logger = LoggerFactory.getLogger(JdbcTemplateRepository.class);
@Autowired
public JdbcTemplate jdbcTemplate;
public <T> List<T> queryForList(String sql, Class<T> mappedClass){
logger.info("sql: " + sql);
List<T> resultList = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(mappedClass));
logger.info("resultList: " + resultList);
return resultList;
}
}
測試如下:
String sql = "SELECT " +
"t1.id id, " +
"t1.pid pid, " +
"t1.menu_name menuName, " +
"t2.menu_name parentName, " +
"t1.menu_code menuCode, " +
"t1.menu_type menuType, " +
"t1.url url, " +
"t1.icon icon, " +
"t1.outside outside, " +
"t1.create_time createTime, " +
"t1.create_by createBy, " +
"t1.update_time updateTime, " +
"t1.update_by updateBy, " +
"CASE WHEN t3.id IS NULL THEN 'false' ELSE 'true' END checked " +
"FROM sys_menu t1 " +
"LEFT JOIN sys_menu t2 ON t1.pid = t2.id " +
"LEFT JOIN sys_role_menu t3 ON t1.id = t3. menu_id AND t3.role_id = 3 " +
"ORDER BY id ";
logger.info("sql: " + sql);
List<SysMenu> sysMenuList = jdbcTemplateRepository.queryForList(sql, SysMenu.class);
logger.info("sysMenuList: " + sysMenuList);