String b="5";
String a="gz='"+b+"'"; //让用户自定义得来的要更新的字段
String sql="update tab set '+a+'; // 想把gz字段值更新成5
con1.executeUpdate(sql); //执行后gz字段值更新不成功
如何加以改正?
String a="gz='"+b+"'"; //让用户自定义得来的要更新的字段
String sql="update tab set '+a+'; // 想把gz字段值更新成5
con1.executeUpdate(sql); //执行后gz字段值更新不成功
如何加以改正?
解决方案 »
- liferay portlet之间怎么传递参数
- 请教自动刷新的问题
- 有JSP 高手没?初学Struts 茫然了!谁能帮我解决问题 最后50分全部大放送!结分的和说什么“顶”之类废话的闪开!!!在线等!!!
- ACCESS数据库连接问题!!
- 大家合计一下那儿可以找到好的JAVA源代码学习?人多力量大!
- java异常处理
- javamail 监控邮件,监控不到QQ邮件,请问怎么会事?
- 想用include,可是不好用,大家出主意
- 关于TOMCAT的SERVER.XML和WEB.XML的设置问题?
- jsp在windows2k 下如何连接oracle817
- 求js高手 或ajax 高手
- ireport3.7.0怎么创建组
---->
String sql="update tab set "+a; // 想把gz字段值更新成5
其实你在
con1.executeUpdate(sql); //执行后gz字段值更新不成功
前面加一句
System.out.println(sql);看看sql就知道是多了单引号额
还是取不到呀
还有~如果不是字符串(数据库里不是char之类的)就不需要单引号的。
String b="5";
String sql="update tab set gz = "+b;
con1.executeUpdate(sql);
这个应该是可以的啊
String b="5";
String a="gz='"+b+"'"; //让用户自定义得来的要更新的字段
String str="update tab set ";
str=str+a;看看有没有报错啊.打印一下SQL测试一下
一、gz字段的类型可能是数字,那么String a="gz='"+b+"'"; 应该改成String a="gz="+b; 否则造成类型不匹配。
二、String sql="update tab set '+a+'; 应该改成String sql="update tab set "+a;
三、你的sql相当危险,没有任何条件语句。如果成功,将更新所有数据的gz字段。
四、最后,请确认table和字段的名字拼写正确。
变量与字符串混淆了,变量都当字符输出了。
String cx="gz1=,gz2="; //由用户自定得来的字符串
String[] myArr = cx.split( ","); //拆分
for(int i=0;i < myArr.length;i++)
{
String aa="";
aa+=myArr[i]+"b"+String.valueOf(i)+",";
aa = aa.substring(0,aa.length() - 1); //去掉最后的逗号
String b0="1";
String b1="2";
String sql="update tab set "+aa; //生成sql
con1.executeUpdate(sql); //执行后gz1,gz2字段值更新不成功
String cx="gz1=,gz2="; //由用户自定得来的字符串
String[] myArr = cx.split( ","); //拆分
String aa="";
for(int i=0;i < myArr.length;i++)
{ aa+=myArr[i]+"b"+String.valueOf(i)+",";
}
aa = aa.substring(0,aa.length() - 1); //去掉最后的逗号
String b0="1";
String b1="2";
String sql="update tab set "+aa; //生成sql
con1.executeUpdate(sql); //执行后gz1,gz2字段值更新不成功
String cx="gz1=,gz2="; //由用户自定得来的字符串
String[] myArr = cx.split( ","); //拆分
String aa="";
for(int i=0;i < myArr.length;i++)
{
aa+=myArr[i]+" '" +"b"+String.valueOf(i)+"' "+",";
}
aa = aa.substring(0,aa.length() - 1); //去掉最后的逗号
String sql="update tab set "+aa; //生成sql
还有你的代码写的太纠结了 试试下面的代码
String sql = "update tab set gz1=?,gz2=?";
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1,"1");
ps.setString(2,"2");
ps.executeQuery();
String[] myArr = cx.split( ",");
String aa="";
for(int i=0;i < myArr.length;i++)
{ aa+=myArr[i]+"'b"+String.valueOf(i)+"',";
}
aa = aa.substring(0,aa.length() - 1);
String b0="1";
String b1="2";
String sql="update tab set "+aa;
String b0="1";
String b1="2";
用楼主的代码 sql生成的是
update tab set gz1=b0,gz2=b1如果楼主想把值更新成b0 b1那就要加引号但是楼主 String b0="1"; String b1="2"; 这两句代码着实诡异 不知道想干嘛
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1,a[i]);
ps.executeQuery();
同时where中的xh也可以用?来代替我上班不能上QQ请见谅
String b = "5";
String a = "gz= "+b;
String sql = "update tab set " + a;
con1.executeUpdate(sql);
String a="gz='"+b+"'"; //让用户自定义得来的要更新的字段
String sql="update tab set "+a+""; // 想把gz字段值更新成5
con1.executeUpdate(sql); //执行后gz字段值更新不成功
应该是这个样子滴!!!