Hibernate named parameter 传参书写方式,同样Hibernate帮我们做了预编译,可以防止sql注入,同时可以一定程度上加快sql执行效率,也利于后期维护

1.当传入参数有多个的时候,使用Hibernate的named parameter方式是一种较好的选择,利于后期的维护;
2.实现方式:使用:name 来进行传入参数,使用sqlQuery对象的setParameter方法传入参数,同时兼顾list类型以及普通数据类型;
3.注意使用时的空格标识符的添加,否则IDE可能会提示,如果不提示,那就只能在运行时抛出异常了;
4.厉害了我的Hibernate,现在已经更新到5啦~

 @Override
    public List<Object[]> getCountByInfoType(String areaCodeStr, String yesterdayNoonStr, List<String> params) throws Exception {
        if(!StringUtils.checkStr(areaCodeStr) || !StringUtils.checkStr(yesterdayNoonStr)){
            return null;
        }
        String countSql = "SELECT * FROM table_test " +
                "WHERE area_code IN(:areaCodeStr) " +
                "AND info_type IN (:infoType)" +
                "AND creation_date>:yesterdayNoonStr ";
        SQLQuery sqlQuery = this.getSession().createSQLQuery(countSql);
        sqlQuery.setParameterList("infoType", params).setParameter("areaCodeStr", areaCodeStr).setParameter("yesterdayNoonStr", yesterdayNoonStr);
        return sqlQuery.list();
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值