JAVA中用Hql语句从数据库中读取数据,字符拼接问题
StringqueryString="selectafromAa,Bbwhere";queryString=queryString+"a.Id="+"MPTRD"+b.b...
String queryString="select a from A a,B b where";
queryString=queryString+" a.Id="+"MPTRD"+b.batchId.substring(3);
即想要表A中的ID等于五个字母加上表B中ID的后四位,,但是拼接出来的都是MPTRDatchId,没有取到数据库中的值,这个问题怎么解决啊,捉急。。 展开
queryString=queryString+" a.Id="+"MPTRD"+b.batchId.substring(3);
即想要表A中的ID等于五个字母加上表B中ID的后四位,,但是拼接出来的都是MPTRDatchId,没有取到数据库中的值,这个问题怎么解决啊,捉急。。 展开
展开全部
先写另外一个list把b.batchId给查询出来,再将值赋给一个string变量S,然后
String queryString=" from A a where";
queryString=queryString+" a.id='"+"MPTRD"+S.substring(3)+"'";
String queryString=" from A a where";
queryString=queryString+" a.id='"+"MPTRD"+S.substring(3)+"'";
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不知道是什么原因,我不知道那个b.batchid.substring(3)有没有用,substring方法应该是java中的方法,而你现在实在拼接sql语句,要取到查询出来的B的id的后四位,应该用数据库的内置方法把。而且后面应该用引号括起来,不然直接看到的就是一个b对象的batchid属性的substring方法了。在拼接字符串最好用stingbuffer来做,提高效率。希望对你有用。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
queryString+="a.id="+"MPTRD' "+b.batchId.substring(3)+" ' "
这个跟sql没关系 只是拼string字符串吧
这个跟sql没关系 只是拼string字符串吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
加上单引号试试:'MPTRDatchId',
queryString=queryString+" a.Id= ' "+"MPTRD"+b.batchId.substring(3)+" ' ";
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语句
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先必须将batchId这个值查询出来!建议用子查询。
更多追问追答
追问
求代码。。。
追答
String queryString="select a from A a,B b where";
queryString=queryString+" a.Id="+"MPTRD"+"select b.batchId.substr(3) from B b";
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询