以前总是抱着sql能一句话解决的问题,就尽量使用SQL;这种强迫性的懒惰心理,务必要克制;
原因: 一条sql语句面对负责的业务,即使能实现也不利于维护,太长,可读性差;
一个大sql不足:1,后期难以维护;2,取总记录数查一次 取所需页数据也要查一次而且这个查询是先取数据再排序比较重耗资源
作为java开发,应该遵从复杂问题分而治之,分成一个个小问题,然后通过代码去实现;
下面,我举一个例子;
比如: 查询学生列表, 学生报有多个补习班 , 一次性列出 所有学生,及每个学生报名的补习班 (其中,男女有别,男的补习班排除艺术班,女的排除音乐班)!
sql语句实现方式:
这种方法业务集中在sql中,和不利于后期的维护与修改,所以不推荐
java实现方式:
好的方式我也不太懂,只能先记录下我目前实现方式;
1.初级查询基础列表的 resultList
// 多个渠道 > 每个渠道内隐藏多个投放城市
RowMapper<ChannelPageModel> rowMapper =
new BeanPropertyRowMapper<ChannelPageModel>(ChannelPageModel.class);
List<ChannelPageModel> resultList=null;
if(args!=null && args.size()>0){
resultList = jdbcTemplate.query(sqlStr.toString(),args.toArray(), rowMapper);
}else{
resultList = jdbcTemplate.query(sql,rowMapper);
}
2. 遍历单个对象,赋值查询1对多关系集合, 塞入到PriceTypes集合中即可
好了; 记录结束;