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,没有取到数据库中的值,这个问题怎么解决啊,捉急。。
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语句
求代码。。。
追答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语句从数据库中读取数据,字符拼接问题的主要内容,如果未能解决你的问题,请参考以下文章