社区
Web 开发
帖子详情
为什么取不到值?
jlsyyz01
2010-02-02 01:07:33
String b="5";
String a="gz='"+b+"'"; //让用户自定义得来的要更新的字段
String sql="update tab set '+a+'; // 想把gz字段值更新成5
con1.executeUpdate(sql); //执行后gz字段值更新不成功
如何加以改正?
...全文
226
28
打赏
收藏
为什么取不到值?
String b="5"; String a="gz='"+b+"'"; //让用户自定义得来的要更新的字段 String sql="update tab set '+a+'; // 想把gz字段值更新成5 con1.executeUpdate(sql); //执行后gz字段值更新不成功 如何加以改正?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
28 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hnnxzhoujia
2010-02-05
打赏
举报
回复
特殊字符,使用转义符。
鹰视狼顾
2010-02-03
打赏
举报
回复
这个东西你可以syso下试试嘿。。。。
鹰视狼顾
2010-02-03
打赏
举报
回复
String b="5";
String a="gz='"+b+"'"; //让用户自定义得来的要更新的字段
String sql="update tab set "+a+""; // 想把gz字段值更新成5
con1.executeUpdate(sql); //执行后gz字段值更新不成功
应该是这个样子滴!!!
doniks
2010-02-03
打赏
举报
回复
[Quote=引用楼主 jlsyyz01 的回复:]
String b="5";
String a="gz='"+b+"'"; //让用户自定义得来的要更新的字段
String sql="update tab set '+a+'; // 想把gz字段值更新成5
con1.executeUpdate(sql); //执行后gz字段值更新不成功
如何加以改正?
[/Quote]
String b = "5";
String a = "gz= "+b;
String sql = "update tab set " + a;
con1.executeUpdate(sql);
魔法骚年小成
2010-02-02
打赏
举报
回复
学习学习
jlsyyz01
2010-02-02
打赏
举报
回复
lovingpig 如我按你的这个方法实现,我是实现从Excel表中循环读值给 数组a, PreparedStatement ps = con.prepareStatement(sql); 是写在循环体外吧?能明白我的意思吗?你的QQ号是多少?
String sql = "update tab set gz1=?,gz2=? where xh='"+xh+"'";
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1,a[i]);
ps.executeQuery();
lovingpig
2010-02-02
打赏
举报
回复
不明白楼主下面两句的用意:
String b0="1";
String b1="2";
用楼主的代码 sql生成的是
update tab set gz1=b0,gz2=b1
如果楼主想把值更新成b0 b1那就要加引号
但是楼主 String b0="1"; String b1="2"; 这两句代码着实诡异 不知道想干嘛
lovingpig
2010-02-02
打赏
举报
回复
如果不固定那就没有办法
tring 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;
jlsyyz01
2010-02-02
打赏
举报
回复
[Quote=引用 16 楼 lovingpig 的回复:]
楼主你的for循环只是在拼字符串吧 为什么要把execute语句也放进去呢?
还有你的代码写的太纠结了 试试下面的代码
String sql = "update tab set gz1=?,gz2=?";
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1,"1");
ps.setString(2,"2");
ps.executeQuery();
[/Quote]
其实我的赋值变量也是拼起来的,因为要更新的字段也是不固定的。有好的方法吗
awusoft
2010-02-02
打赏
举报
回复
提供QQ远程吧
jlsyyz01
2010-02-02
打赏
举报
回复
[Quote=引用 16 楼 lovingpig 的回复:]
楼主你的for循环只是在拼字符串吧 为什么要把execute语句也放进去呢?
还有你的代码写的太纠结了 试试下面的代码
String sql = "update tab set gz1=?,gz2=?";
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1,"1");
ps.setString(2,"2");
ps.executeQuery();
[/Quote]
对是在拼字符串呀,如果按照我的思路应如何改呢?
lovingpig
2010-02-02
打赏
举报
回复
楼主你的for循环只是在拼字符串吧 为什么要把execute语句也放进去呢?
还有你的代码写的太纠结了 试试下面的代码
String sql = "update tab set gz1=?,gz2=?";
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1,"1");
ps.setString(2,"2");
ps.executeQuery();
awusoft
2010-02-02
打赏
举报
回复
不知道你这样写....值呢?
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
jlsyyz01
2010-02-02
打赏
举报
回复
没办法贴源码吧,说不清楚了,看看哪里的错。刚才贴错了
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字段值更新不成功
jlsyyz01
2010-02-02
打赏
举报
回复
没办法贴源码吧,说不清楚了,看看哪里的错。
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字段值更新不成功
awusoft
2010-02-02
打赏
举报
回复
update tab set gz='"+b+"'
你说输出这个???我不太相信一个"不是那么容易输出的
awusoft
2010-02-02
打赏
举报
回复
要的就是这个啊
jlsyyz01
2010-02-02
打赏
举报
回复
sql 输出后是 update tab set gz='"+b+"'
变量与字符串混淆了,变量都当字符输出了。
yuzhangqu
2010-02-02
打赏
举报
回复
楼上的都回答得差不多了,我总结一下。
一、gz字段的类型可能是数字,那么String a="gz='"+b+"'"; 应该改成String a="gz="+b; 否则造成类型不匹配。
二、String sql="update tab set '+a+'; 应该改成String sql="update tab set "+a;
三、你的sql相当危险,没有任何条件语句。如果成功,将更新所有数据的gz字段。
四、最后,请确认table和字段的名字拼写正确。
awusoft
2010-02-02
打赏
举报
回复
[Quote=引用 1 楼 crazylaa 的回复:]
String sql="update tab set '+a+'; // 想把gz字段值更新成5
---->
String sql="update tab set "+a; // 想把gz字段值更新成5
其实你在
con1.executeUpdate(sql); //执行后gz字段值更新不成功
前面加一句
System.out.println(sql);看看sql就知道是多了单引号额
[/Quote]
这个应该是可以的啊
String b="5";
String a="gz='"+b+"'"; //让用户自定义得来的要更新的字段
String str="update tab set ";
str=str+a;
看看有没有报错啊.打印一下SQL测试一下
加载更多回复(8)
cookie
取
不到
值
在项目中遇到html页面需要做一些记忆操作,选择把记忆操作的
值
存储在cookie中,遇到了某些页面可以获
取
有些页面获
取
不到
,查阅了一番资料发现cookie也是有路径权限的。 cookie默认路径:当前访问的servlet父路径。 ...
关于input
取
不到
值
的可能性
今天给自己挖了个坑,div转对话框死活获
取
不到
里面的
值
,框名什么的倒是很正常. 于是开始做测试,先是把input移除对话框外看是否能正常
取
到input里的
值
,结果正常.得出结论只能是对话框的锅. 再想,那到底是因为对话框...
SpringBoot @value注解
取
不到
值
的问题
总结:从上面方法得知,第一种方法没有获
取
到
值
是因为没有在springapplication容器里获
取
student的bean,因为在实体类加上了@comment注解,这个注解就是把student变成一个bean,才能读
取
到,不能new 一个对象调用 ...
关于自定义的data-*属性有时候
取
不到
值
的问题 2
当时也是
取
不到
自定义属性的
值
然后用 $(this).attr("data-testcount") 成功获
取
到
值
这次要说的则是写法上的的问题 简单来说就是 data- 后面跟的单词不能够大写字母 (excuse me???) 不知道是偶然还是...
ThreadLocal弱引用被垃圾回收的话保存的
值
岂不是
取
不到
了?
//由于不是public属性,爆破 //这里不能用ThreadLocal.ThreadLocalMap指向,因为ThreadLocalMap不是public得
不到
Object o1 = field.get(thread); //得到ThreadLocalMap的table属性,他是一个Entry数组, Field ...
Web 开发
81,116
社区成员
341,730
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章