社区
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字段值更新不成功
如何加以改正?
...全文
223
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)
@Value为啥
取
不到
值
@Value为啥
取
不到
值
ThreadLocal 线程内
取
不到
值
ThreadLocal 线程内
取
不到
值
问题描述 在拦截器里, 从 request 请求里拿出了一些数据例如用户id啥的, 存储到了 ThreadLocal 里, 在后面具体的业务处理中, 从 ThreadLocal 却里
取
不到
值
问题分析 大概率是因为当前业务线程和之前拦截器不是同一线程, 可以使用一下方法查看一下线程 id 是否一致 Thread t = Thread.currentThread() 解决方案 找到原因侯就很容易解决了, 可以在进入业务前把数据从 ThreadLocal 里
取
出来, 或
关于自定义的data-*属性有时候
取
不到
值
的问题
关于自定义的data-*属性有时候
取
不到
值
的问题
Springboot中@value注解
取
不到
值
一般情况下,我们可以用@value注解从核心配置文件里获
取
参数的
值
,例如application.properties,application.yml文件等,但要注意以下几点: 一:能用注解获
取
的前提是必须将当前类交由spring容器来统一管理,一般用注解@Component。 二:使用@Value的类在调用的时候,不能直接通过new操作符进行调用,需要使用@Autowired进行注入 当通过用@valueh注解获
取
配置文件的参数
值
时,需要从这两个方面查找
取
值
问题的原因。 ...
关于自定义的data-*属性有时候
取
不到
值
的问题 2
之前写了一个关于这个问题的文章 当时也是
取
不到
自定义属性的
值
然后用 $(this).attr("data-testcount") 成功获
取
到
值
这次要说的则是写法上的的问题 简单来说就是 data- 后面跟的单词不能够大写字母 (excuse me???) 不知道是偶然还是就是这样的规范 当我发现我原本
取
不到
的
值
换成小写字母后居然可以
取
到了 一瞬间我是想‘’哔‘
Web 开发
81,115
社区成员
341,731
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章