JAVA中用Hql语句从数据库中读取数据,字符拼接问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA中用Hql语句从数据库中读取数据,字符拼接问题相关的知识,希望对你有一定的参考价值。

String queryString="select a from A a,B b where";
queryString=queryString+" a.Id="+"MPTRD"+b.batchId.substring(3);
即想要表A中的ID等于五个字母加上表B中ID的后四位,,但是拼接出来的都是MPTRDatchId,没有取到数据库中的值,这个问题怎么解决啊,捉急。。

参考技术A 先写另外一个list把b.batchId给查询出来,再将值赋给一个string变量S,然后
String queryString=" from A a where";
queryString=queryString+" a.id='"+"MPTRD"+S.substring(3)+"'";本回答被提问者采纳
参考技术B 不知道是什么原因,我不知道那个b.batchid.substring(3)有没有用,substring方法应该是java中的方法,而你现在实在拼接sql语句,要取到查询出来的B的id的后四位,应该用数据库的内置方法把。而且后面应该用引号括起来,不然直接看到的就是一个b对象的batchid属性的substring方法了。在拼接字符串最好用stingbuffer来做,提高效率。希望对你有用。 参考技术C queryString+="a.id="+"MPTRD' "+b.batchId.substring(3)+" ' "
这个跟sql没关系 只是拼string字符串吧
参考技术D 加上单引号试试:'MPTRDatchId',
queryString=queryString+" a.Id= ' "+"MPTRD"+b.batchId.substring(3)+" ' ";追问

这样的话,那个b根本无法识别、、、

追答

substr(order_no,0,3)
queryString=queryString+" a.Id= ‘ “+”MPTRD"+“ substr(b.batchId,-4,4)’ ”,先说明下,这个是oracle的hql语句

第5个回答  2013-07-23 先必须将batchId这个值查询出来!建议用子查询。追问

求代码。。。

追答String queryString="select a from A a,B b where";
queryString=queryString+" a.Id="+"MPTRD"+"select b.batchId.substr(3) from B b";

追问

select a from A a,B b where a.Id=MPTRDselect b.batchId.substr(3) from B b;
结果出来是这样的。。。

hql语句拼接的替换方式

hql语句拼接的替换方式

hql语句拼接

          String hql = "FROM Topic t WHERE t.forum=?  ";
		List<Object> parameters = new ArrayList<Object>();
		parameters.add(forum);
		if (viewType == 1) {
			hql += "AND t.type = ?";
			parameters.add(Topic.TYPE_BEST);
		}
		if(orderBy == 1){ //1表示只按最后更新时间排序 
			hql += "ORDER BY t.lastUpdateTime " + (asc?"ASC":"DESC");
		}else if(orderBy == 2){//2表示只按主题发表时间排序 
			hql += "ORDER BY t.postTime " + (asc?"ASC":"DESC");
		}else if(orderBy == 3){//3表示只按回复数量排序
			hql += "ORDER BY t.replyCount " + (asc?"ASC":"DESC");
		}else{ //0表示默认排序(置顶帖在前面, 并按最后更新时间降序排序) 
			hql += "ORDER BY (CASE t.type WHEN 2 THEN 2 ELSE 0 END) DESC, t.lastUpdateTime DESC";		
		}

  

以上是关于JAVA中用Hql语句从数据库中读取数据,字符拼接问题的主要内容,如果未能解决你的问题,请参考以下文章

hibernate的hql把一列的结果集拼接成一个字符串

hql语句拼接的替换方式

hql语句拼接模糊查询

HQL语句中数据类型转换

从list列表中以空格读取字符串 .java

vue中用字符串拼接生成变量名