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类字段匹配上呢?
求教大神

...全文
222 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
stacksoverflow 2018-06-19
  • 打赏
  • 举报
回复
引用 3 楼 u014632570 的回复:
重新读了一遍发帖,找到了问题,一个变量名用错了。但还是有点小困惑,sql 语句中的where条件id(整数型)=‘数字',而不是id(整数型)=数字.
整数型的话应该是不用单引号,id(整数型)=数字 但有些数据库里加上单引号也没问题。id(整数型)=‘数字' 这个(数字)只是sql的一部分,Java中把SQL拼对了即可,加不加单引号完全有你的拼接SQL的程序决定,和java的类型无关。
不停哥哥 2018-06-19
  • 打赏
  • 举报
回复
重新读了一遍发帖,找到了问题,一个变量名用错了。但还是有点小困惑,sql 语句中的where条件id(整数型)=‘数字',而不是id(整数型)=数字.
stacksoverflow 2018-06-19
  • 打赏
  • 举报
回复
string和数据库中的int不需要什么对应关系 数据库只和sql语句打交道,也就是你只要保证拼接的sql语句没问题,就可以了。
stacksoverflow 2018-06-19
  • 打赏
  • 举报
回复
where id="+urlupdate_i+" "); 改成where id="+idforupdate_i +" ");

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧