jap,数据库查询语法问题

不停哥哥 2018-06-19 02:28:45
form表单有个<input name="idforupdate" type="text" value="">,提交后执行
String idforupdate_i = "";
if(request.getParameter("idforupdate") != null){
idforupdate_i = new String(request.getParameter("idforupdate").getBytes("ISO-8859-1"),"UTF-8");
......数据库连接等部分(略)......

然后是这句,执行没有出错,但是查看表记录没有变化,感觉是WHERE没有查到符合条件的记录
PreparedStatement pStmt = conn.prepareStatement("update websites set name='"+nameupdate_i+"',url='"+urlupdate_i+"' where id="+urlupdate_i+" ");
注明:websites表中的id字段是int类型,是用做主键的整数型记录代号,数据库MYSQL.

感觉应该是变量类型匹配的问题,就是不知道怎么写,java里的String是个什么类型的东西?怎么和数据库的INT类字段匹配上呢?
求教大神

...全文
136 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
两个猕猴桃 2018-06-19
引用 3 楼 u014632570 的回复:
重新读了一遍发帖,找到了问题,一个变量名用错了。但还是有点小困惑,sql 语句中的where条件id(整数型)=‘数字',而不是id(整数型)=数字.
整数型的话应该是不用单引号,id(整数型)=数字 但有些数据库里加上单引号也没问题。id(整数型)=‘数字' 这个(数字)只是sql的一部分,Java中把SQL拼对了即可,加不加单引号完全有你的拼接SQL的程序决定,和java的类型无关。
回复
不停哥哥 2018-06-19
重新读了一遍发帖,找到了问题,一个变量名用错了。但还是有点小困惑,sql 语句中的where条件id(整数型)=‘数字',而不是id(整数型)=数字.
回复
两个猕猴桃 2018-06-19
string和数据库中的int不需要什么对应关系 数据库只和sql语句打交道,也就是你只要保证拼接的sql语句没问题,就可以了。
回复
两个猕猴桃 2018-06-19
where id="+urlupdate_i+" "); 改成where id="+idforupdate_i +" ");
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2018-06-19 02:28
社区公告
暂无公告