求教个java中拼SQL的问题!!我sql拼写过不去!
java吧
全部回复
仅看楼主
level 1
apolllo 楼主
for(int m=0;i<bb.length;m++){
bb[m].setAttributeValue("cinventoryid", sql02);
String sql03="select vbdcode from lm_databasiccr_bwhere vxtersysvalue ='"+bb[m].getNnum+"''"+m+"'"+("")+""}
我要把m加到getNnum后面 使bb[m].getNnum()是可以变的      使得我可以一条语句循环执行多次 而获得的值不同。分别是
String sql03="select vbdcode from lm_databasiccr_bwhere vxtersysvalue ='"bb[m].getNnum1()"';
String sql03="select vbdcode from lm_databasiccr_bwhere vxtersysvalue ='"bb[m].getNnum2()"';
String sql03="select vbdcode from lm_databasiccr_bwhere vxtersysvalue ='"bb[m].getNnum3()"';
上面三条合成一条SQL语句
变化的是getNnum1()getNnum2()getNnum3()   其中123 改变 其他不变 这个解释能明白么。
2011年04月17日 11点04分 1
level 1
apolllo 楼主
最上面的是我自己写的 但是 通不过!
2011年04月17日 11点04分 2
level 1
1、bb[m].getNnum这里错误,因为bb[m]中并不存在getNnum这个属性;
2、你拼接出来的只是字符串而已,系统并不会把它当做函数来执行的;
2011年04月17日 11点04分 3
level 1
apolllo 楼主
对对 那我该怎么办啊
2011年04月17日 11点04分 4
level 1
建议你在设计类的时候这样
public class MyClass(){
private int num1;
private int num2;
private int num3;
public int getNum(int index){
int value;
switch(i){
   case 1: {value = this.num1;break;}
case 2: {value = this.num2;break;}
case 3: {value = this.num3;break;}
default :break;
}
   return value;
}
...
}
然后你要取值的时候就调用 bb[m].getNum(m) 就可以取到对应值。
不过我们一般是不会通过这种写的,应该是你的设计有问题。
2011年04月17日 12点04分 5
level 1
检查一下好像有点问题:
public class MyClass(){
private int num1;
private int num2;
private int num3;
public int getNum(int index){
int value = -1;            //这里的value应该要有个初始值吧,不然编译会有些问题
switch(i){
    case 1: {value = this.num1;break;}
case 2: {value = this.num2;break;}
case 3: {value = this.num3;break;}
default :break;
}
    return value;
}
...
}
2011年04月17日 12点04分 6
level 1
public class MyClass(){ //这里还多了括号,[撞墙至死]
2011年04月17日 13点04分 7
level 9
"bb[m].getNnum1()"
他这里直接当字符串处理了。
不会再把m代进去
你要用
""+bb[m].getNnum1()+""
2011年04月17日 15点04分 8
level 1
“getNnum()”这样的方法不能在SQL语句里执行啊,所以只有在之前就取出getNumb()的值再放入SQL语句中或者不用双引号引起来才可以执行。
2011年04月19日 09点04分 9
level 5
lm_databasiccr_bwhere
where前面的空格加上,会报错的数据库。。。
2011年04月19日 09点04分 10
1