java-hql拼接语句时的空格问题

问题描述

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 之前加的空格。两种运行的第一种是正确的,第二种是错误的。网上找不到资料,忘各位大神帮忙分析下原因。

时间: 2024-10-22 17:47:00

java-hql拼接语句时的空格问题的相关文章

Java下拼接执行动态SQL语句(转)

       在实际业务中经常需要拼接动态SQL来完成复杂数据计算,网上各类技术论坛都有讨论,比如下面这些问题:         http://bbs.csdn.net/topics/390876591         http://bbs.csdn.net/topics/390981627         https://www.linkedin.com/groups/SQL-Query-Help-needed-137774.S.5948812806903119877?trk=groups_i

10种Java开发者编写SQL语句时常见错误_MsSql

Java开发者对于面向对象编程思维与命令行编程思维的协调程度,取决于他们如下几种能力的水平: 技巧(任何人都可以编写命令行形式的代码) 教条(有的人使用"模式 - 模式"的方式,即模式无处不在,并以名字作为标识) 情绪状况(在初期,真正面向对象形式的代码比起命令式代码会更加难懂.) 但是,当Java开发人员编写SQL语句时,一切都变得不同了.SQL是一种说明式语言,与面向对象思想和命令式思想无关.在SQL语言中,查询非常容易表达.但它也不是那么容易以最佳或最正确地方式编写出来.开发人员

java拼接字符串时去掉最后一个多余逗号的方法_java

本文实例讲述了java拼接字符串时去掉最后一个多余逗号的方法.分享给大家供大家参考.具体分析如下: 先看下面这段代码: for (int t = 0; t < memberLen; t++) { memTemp = stafferMap.get(strMember[t]); if(memTemp != null){ memberNames += memTemp + ","; } } 以上的代码,拼接的字符串会多一个",",比如:"str1,str2,

10种Java开发者编写SQL语句时常见错误

Java开发者对于面向对象编程思维与命令行编程思维的协调程度,取决于他们如下几种能力的水平: 技巧(任何人都可以编写命令行形式的代码) 教条(有的人使用"模式 - 模式"的方式,即模式无处不在,并以名字作为标识) 情绪状况(在初期,真正面向对象形式的代码比起命令式代码会更加难懂.) 但是,当Java开发人员编写SQL语句时,一切都变得不同了.SQL是一种说明式语言,与面向对象思想和命令式思想无关.在SQL语言中,查询非常容易表达.但它也不是那么容易以最佳或最正确地方式编写出来.开发人员

Java String字符串补0或空格的实现代码_java

废话不多说了,关键代码如下所示: package cn.com.songjy; import java.text.NumberFormat; //Java 中给数字左边补0 public class NumberFormatTest { public static void main(String[] args) { // 待测试数据 int i = 1; // 得到一个NumberFormat的实例 NumberFormat nf = NumberFormat.getInstance(); /

Java中new DerivedClass()时背后发生的事情

Java中new DerivedClass()时背后发生的事情 (原创 – 邵正军, 2005-4-5)   class DerivedClass extends BaseClass {-} new DerivedClass();   1           装载class 1.1          载入BaseClass , 产生了此处说明的序列步骤(即: [装载class])的递归. 1.2          载入DerivedClass 1.2.1     为类作用域变量分配存储空间,并赋

hive执行query语句时提示错误

hive执行query语句时提示错误:org.apache.hadoop.ipc.RemoteException: java.io.IOException: java.io.IOException: hive> select product_id, track_time from trackinfo limit 5; Total MapReduce jobs = 1 Launching Job 1 out of 1 Number of reduce tasks is set to 0 since

java的循环语句

while,do-while和for控制着循环,有时将其划分为"反复语句".除非用于控制反复的布尔表达式得到"假"的结果,否则语句会重复执行下去.while循环的格式如下: while(布尔表达式) 语句 在循环刚开始时,会计算一次"布尔表达式"的值.而对于后来每一次额外的循环,都会在开始前重新计算一次. 下面这个简单的例子可产生随机数,直到符合特定的条件为止:   //: WhileTest.java // Demonstrates the w

java怎么在循环时在抛出异常的同时又能跳到循环的下一条

问题描述 java怎么在循环时在抛出异常的同时又能跳到循环的下一条 如题:比如 for(int i=0;i<str.length();i++){ if(i==1){ throw new ApiException("dsf"); //continue; } } 解决方案 看你的目标. 1.查看异常信息.你可以捕获异常,写日志. 2.方法调用的地方处理异常.用list把异常信息存储起来,return. 解决方案二: try { } catch (Exception e) { // T