java 避免不同库使用left join查询速率低效 采用 sql 注入foreach 遍历list查询方式
2017-10-25 19:53
656 查看
java 避免不同库使用left join查询速率低效 采用 sql 注入foreach 遍历list查询方式
(1)前端接受回用“,”拼接起来的字符串 String select_copy_ids
List<Integer> copyIds = DBUtil.getParamIntList(select_copy_ids);
List<Integer> roleIds = new ArrayList<Integer>();
List<DrillingRoleModel> copyRoleModels = drillingModelService.listDrillingRoleModelCopyById(copyIds);
(2)将带“,”拼接字符串 装换为List
(3)数据库xml配置
<select id="listDrillingRoleModelCopyById" resultType="com.baofoo.admin.entity.data.drilling.DrillingRoleModel">
SELECT * FROM BAOFOO_ADMIN.drilling_role_model WHERE id IN (
<foreach collection="list" item="item" index="index" separator=",">
#{item}
</foreach>
)
</select>
(1)前端接受回用“,”拼接起来的字符串 String select_copy_ids
List<Integer> copyIds = DBUtil.getParamIntList(select_copy_ids);
List<Integer> roleIds = new ArrayList<Integer>();
List<DrillingRoleModel> copyRoleModels = drillingModelService.listDrillingRoleModelCopyById(copyIds);
(2)将带“,”拼接字符串 装换为List
public static List<Integer> getParamIntList(String value) throws Exception { List<Integer> returnList = new ArrayList<Integer>(); if (StringUtils.isBlank(value)) { return returnList; } else { try { String[] idsStr = value.split(ConstUtil.SPLIT_DH); for (String id : idsStr) { returnList.add(Integer.parseInt(id)); } } catch (Exception e) { throw new Exception("处理提交请求参数:Int List类型异常,转换值value=" + value); } return returnList; } }
(3)数据库xml配置
<select id="listDrillingRoleModelCopyById" resultType="com.baofoo.admin.entity.data.drilling.DrillingRoleModel">
SELECT * FROM BAOFOO_ADMIN.drilling_role_model WHERE id IN (
<foreach collection="list" item="item" index="index" separator=",">
#{item}
</foreach>
)
</select>
相关文章推荐
- Java中使用foreach遍历list的盲点,
- Java中使用hql,sql查询返回的list<Object> 转成需要的实体对象--方法讲解!
- Hibernate查询之SQL查询,查询结果用new新对象的方式接受,hql查询,通过SQL查询的结果返回到一个实体中,查询不同表中内容,并将查到的不同表中的内容放到List中
- Hibernate查询之SQL查询,查询结果用new新对象的方式接受,hql查询,通过SQL查询的结果返回到一个实体中,查询不同表中内容,并将查到的不同表中的内容放到List中
- 使用foreach,list来遍历数组
- 数据库SQL中的分钟表示应该使用MI(非常重要的一个问题,以前一直认为和java中一样,用mm就可以表示);校对规则(查询时区分大小写)
- C# 使用SqlDataReader方式使用数据做查询的例子
- delphi+access 执行时间段查询时,直接写SQL和使用filter的不同
- Java中使用hql,sql查询--多表查询后的新实体构建方法详解
- java foreach循环遍历List 如何比较List里面值的大小 里面值是int
- Java中使用hql,sql查询--多表查询后的新实体构建方法详解
- 使用MySQL的慢查询日志找到低效的SQL语句
- SQL 表中记录查询排序随笔(sql server中order by使用方式小总结)
- 使用 sqldatareader 利用存储过程,一次读多个表,避免多次查询
- Java中使用hql,sql查询--多表查询后的新实体构建方法详解
- 64位环境中使用SQL查询excel的方式解决
- 采用类似Java WS-*的方式,在一个ASP.NET服务中将不同的类暴露为多个的Port
- JAVA数组的遍历,使用了新的遍历方法foreach
- Java:对于Sql语句执行方式不同而出现的问题!列名: 'false' 无效
- java.util.LIST是个接口,不够直观,要学习ms使用IList做为接口命名的方式