zoukankan      html  css  js  c++  java
  • Hibernate + mysql 查询伪劣时:= 出现 Space is not allowed after parameter prefix ':' MySQL异常

    需求: 要求查询一个站点在地市和省的排名信息出来。

    效果图:

    代码实现: 注释的部分是起初采用的hibernate 查询,但无论怎么写都会报 space is not allowed after parameter prefix ':'......  后来上网查了,有人也遇到过类似问题,给出的解决方法是转义冒号。 http://blog.csdn.net/woshizhangliang999/article/details/48036407  但是在不知道为何在我里不起作用。 可能是我程序限制??反正不太清楚。 后来没办法采用了原始的JDBC 查询。 在此记录一下。 代码如下。

    @Autowired
    private JdbcTemplate jdbcTemplateLoms;
    public List getStationGameSalesRank(String regionCode) {
            
            StringBuffer sb = new StringBuffer();
            sb.append("select @curRank:=@curRank+1 AS rank, sales.* from (SELECT s.station_id stationId, sum(s.this_year_sale) sales_sum FROM station_game_sales_shanxi s ");
            
    //        String sql = "select @curRank \:=@curRank+1 AS rank, sales.* from ( "+
    //                     "SELECT s.station_id stationId, sum(s.this_year_sale) sales_sum FROM station_game_sales_shanxi s ";
    //                    
            if (regionCode != null && !"".equals(regionCode)
                    && !"0".equals(regionCode)) {
                sb.append("LEFT JOIN station sta on s.station_id = sta.station_id ");
                sb.append("Where sta.region_code ='"+regionCode+"' ");
            }
            sb.append("GROUP BY s.station_id ORDER BY sales_sum DESC ) sales, (SELECT @curRank:=0) q ");
            List list = null;
            try{
                list = jdbcTemplateLoms.queryForList(sb.toString());
    //            Session session = (Session) em.getDelegate();
    //            SQLQuery query = session.createSQLQuery(sql);
    //            if (regionCode != null && !"".equals(regionCode)
    //                    && !"0".equals(regionCode)) {
    //                query.setParameter("regionCode", regionCode.trim());
    //            }
    //            query.setResultTransformer(CriteriaSpecification.ALIAS_TO_ENTITY_MAP);
    //            list = query.list();
            }catch(Exception ex){
                ex.printStackTrace();
            }
            return list;
        }
  • 相关阅读:
    js--未来元素
    Nginx 浏览器打开是下载状态
    JS对象的深拷贝
    微信小程序--扫描二维码
    js--call( )/apply()/bind()--应用
    数学书籍
    【活动】你有创意我有奖!摹客X飞书2020产品设计大赛邀你来战
    APP设计实例解析,深色模式为什么突然就火了?
    焦虑求职季又至:2020UI设计师作品集如何准备?
    QQ音乐 vs 网易云音乐,用户体验哪家强?
  • 原文地址:https://www.cnblogs.com/zyfxlv/p/8026931.html
Copyright © 2011-2022 走看看