2 lovezwlhjj lovezwlhjj 于 2014.08.05 17:46 提问

hql拼接语句时的空格问题

下面两段代码是我拼接hql语句的两种:
1、if(hql.indexOf("where")==-1){
hql += " where archiveTime is not null and netType = '"+netType+"' ";
}else{
hql += " and archiveTime is not null and netType = '"+netType+"' ";
}

        if(companyName!=null&&!"".equals(companyName)){
            hql+="and Business_.lowerName.customer.name1 like '%"+companyName+"%'";
        }

下面是第二种:
2、 if(hql.indexOf("where")==-1){
hql += " where archiveTime is not null and netType = '"+netType+"'";
}else{
hql += " and archiveTime is not null and netType = '"+netType+"'";
}

        if(companyName!=null&&!"".equals(companyName)){
            hql+=" and Business_.lowerName.customer.name1 like '%"+companyName+"%'";
        }

乍一看两个是没有区别的,但是注意看会发现,第一个在netType后面加了空格,第二个是在and 之前加的空格。两种运行的第一种是正确的,第二种是错误的。网上找不到资料,忘各位大神帮忙分析下原因。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
hql语句拼接查询
根据不同条件拼接hql语句 @Override public List generateReport(Long marketId,String startTime,String endTime,Integer type) { StringBuilder ql = new StringBuilder("from OrderStatisticsByDay where 1 = 1
HQL查询语句拼接规范,避免SQL注入攻击
软件开发过程中不仅要考虑软件的功能实现,还要考虑软件的安全性,如果一个软件系统安全性做得不好,一旦被黑客攻击,后果不堪设想。对于B/S系统,SQL注入攻击就是一个常见的安全隐患,下面我们来看下如何在日常开发中避免SQL注入攻击。SQL注入简介 SQL注入即是指web应用程序对用户输入数据的合法性没有判断,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,以此来实现欺骗数
错误:手动SQL语句拼接时,注意空格
错误语句报错VS2012提示我,在return_quy旁请注意”,”分析 根据报错原因,我以为是我疏忽中,return_qty并没有对应wms_receive_mtl表中的一个字段,但检查后,是完全对应的 后来,我又认为是我的SQL语句写的有问题,但是放在数据库里是能完好运行的但是我将SQL语句放入数据库中时,我首先去掉了拼接符“+”,并自己为语句之间加了空格(做这一步的时候,我心里完全没有异样)
hql多条件查询的拼接
今天在做项目的时候,写了一个查询窗口功能:里面可以输入N个条件,如果条件为空则跳过,后台处理这个方案,就需要用到hql的拼接了~! 比如在页面有5个文本框,每个文本框代表数据库里的一个字段。查询代码如下:StringBuffer hql = new StringBuffer(); hql.append("SELECT * FROM table where 1=1 "); if(参数1 !=nul
HQL语句拼接模板
分页分装类 package cn.jxlg.oa.util; import java.util.ArrayList; import java.util.List; import cn.jxlg.oa.domain.PageBean; import com.opensymphony.xwork2.ActionContext; /**  * 用于辅助拼接HQL语句  *
hql 如何实现多个条件查询自由动态拼接
最近在做多个查询需要自由拼接的时候遇到一些问题,由于项目是ssh,herbinate这种处理在网上比较少,所以记录一下。 下面的select后面为我的model类,where后面则是一下查询条件是否为的判断。 StringBuffer sql = new StringBuffer("select new com.empl.mgr.model.A_User (stuId, stuSchool,
Hibernate_根据条件动态组装sql/hql语句(仿ibatis动态查询语句功能)
via: http://blog.csdn.net/crazycoder2010/article/details/7414152   1.功能需求背景  项目中使用hibernate作为数据持久层框架,主要考虑hibernate在进行一些简单的crud操作时非常便利,不需要和ibatis似的为每个sql操作都写一堆文件,但是同时也带来了一些局限性,如类似ibatis强大的动态查询功能用不了了,
hql语句之间少了空格引起的.IllegalArgumentException不合法异常
line 1:81: unexpected token: e at org.hibernate.hql.internal.antlr.HqlBaseParser.queryRule(HqlBaseParser.java:784) at org.hibernate.hql.internal.antlr.HqlBaseParser.selectStatement(HqlBaseParser.jav
使用json实现查询条件传回Action进行hql语句拼接查询实现在结果中查询功能在datagrid中显示查询结果
1.在浏览器端使用javascript脚本把用户每次的查询选择保存到key和value数组中去保存下来: var key=new Array(10); var value=new Array(10); for(var i=0;i        if(key[i]==undefined){           key[i]=$('#simpleSearch').combobox('getV
hibernate根据条件动态组装sql/hql语句(仿ibatis动态查询语句功能)
1.功能需求背景   项目中使用hibernate作为数据持久层框架,主要考虑hibernate在进行一些简单的crud操作时非常便利,不需要和ibatis似的为每个sql操作都写一堆文件,但是同时也带来了一些局限性,如类似ibatis强大的动态查询功能用不了了,但是这个功能在项目中的应用场景又很大,hibernate自身也支持将sql/hql语句写在.hbm.xml映射文件中和元素,但是这个功