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();
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章