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,没有取到数据库中的值,这个问题怎么解决啊,捉急。。
展开
 我来答
反骨仔啦啦33
2013-07-23 · 超过22用户采纳过TA的回答
知道答主
回答量:82
采纳率:0%
帮助的人:48.2万
展开全部
先写另外一个list把b.batchId给查询出来,再将值赋给一个string变量S,然后
String queryString=" from A a where";
queryString=queryString+" a.id='"+"MPTRD"+S.substring(3)+"'";
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
骨钰
2013-07-23 · TA获得超过127个赞
知道答主
回答量:109
采纳率:100%
帮助的人:69.1万
展开全部
不知道是什么原因,我不知道那个b.batchid.substring(3)有没有用,substring方法应该是java中的方法,而你现在实在拼接sql语句,要取到查询出来的B的id的后四位,应该用数据库的内置方法把。而且后面应该用引号括起来,不然直接看到的就是一个b对象的batchid属性的substring方法了。在拼接字符串最好用stingbuffer来做,提高效率。希望对你有用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
法里奥11
2013-07-23 · TA获得超过157个赞
知道小有建树答主
回答量:55
采纳率:0%
帮助的人:52.2万
展开全部
queryString+="a.id="+"MPTRD' "+b.batchId.substring(3)+" ' "
这个跟sql没关系 只是拼string字符串吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tytwddd
2013-07-23 · TA获得超过110个赞
知道小有建树答主
回答量:146
采纳率:0%
帮助的人:136万
展开全部
加上单引号试试:'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语句
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c5daa429e
2013-07-23 · TA获得超过102个赞
知道小有建树答主
回答量:155
采纳率:100%
帮助的人:106万
展开全部
先必须将batchId这个值查询出来!建议用子查询。
更多追问追答
追问
求代码。。。
追答
String queryString="select a from A a,B b where";
queryString=queryString+" a.Id="+"MPTRD"+"select b.batchId.substr(3) from B b";
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式