preparestatement的setInt的问题 请进

hhhyde 2011-08-04 10:57:18

String sql = "select * from forder where uid=?";
PreparedStatement pStatement = conn.prepareStatement(sql);
pStatement.setInt(1,users.getUid());
// 这样写不行
//结果为 select * from forder where uid=?
rSet = pStatement.executeQuery();
System.out.println(sql);
while (rSet.next()) {
Forder forder = new Forder();
forder.setFid(rSet.getLong("fid"));
forder.setFtotal(rSet.getDouble("ftotal"));
forder.setFremark(rSet.getString("fremark"));
forder.setFdate(rSet.getString("fdate"));
fUsers.setUname(rSet.getString("uname"));
fUsers.setUphone(rSet.getString("uphone"));
fUsers.setUemail(rSet.getString("uemail"));
fUsers.setUpost(rSet.getInt("upost"));
fUsers.setUaddress(rSet.getString("uaddress"));
fUsers.setUid(rSet.getInt("uid"));
forder.setSid(rSet.getInt("sid"));
forder.setUsers(fUsers);
forders.add(forder);
...全文
601 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
三千大千世界 2011-08-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 beiouwolf 的回复:]

预编译 不等于 字符串替换...
很汗啊...
预编译是首先将带动态参数的SQL发给服务器进行缓存
然后再发送具体参数,由数据库负责提取缓存命令并执行命令

有SQLSERVER的可以打开跟踪功能,你会看到实际提交的不是一般的SQL,是一个特殊的由服务器执行的存储过程
[/Quote]
++
JavaMan_KA 2011-08-07
  • 打赏
  • 举报
回复
不是字符串替换,不会把问号替换成你所要的值的,打印时当然是还有问号啊。
水不多 2011-08-05
  • 打赏
  • 举报
回复
楼上的回答有点跟楼上上的回答不靠边啊
zwb_1988 2011-08-05
  • 打赏
  • 举报
回复
users.getUid 方法返回的是int?

Java报错是什么啊?

然后就是,你确定"select * from forder where uid=?" 里那个问号是ASCII(英文)的,而不是Unicode??
luohuijun619 2011-08-05
  • 打赏
  • 举报
回复
这样写肯定是?,你又不是直接把sql拼接好转入的
sd4324530 2011-08-05
  • 打赏
  • 举报
回复
囧!!!!!
又不是字符串替换。。。。打印的当然是有问号的啊。。。
beiouwolf 2011-08-04
  • 打赏
  • 举报
回复
预编译 不等于 字符串替换...
很汗啊...
预编译是首先将带动态参数的SQL发给服务器进行缓存
然后再发送具体参数,由数据库负责提取缓存命令并执行命令

有SQLSERVER的可以打开跟踪功能,你会看到实际提交的不是一般的SQL,是一个特殊的由服务器执行的存储过程
Fly_m 2011-08-04
  • 打赏
  • 举报
回复
System.out.println(sql);
sql 就是你定义的 String sql = "select * from forder where uid=?";
ps不会通过setint就把你的这个sql中的?给替换掉,它是内部执行替换的,你也不用关心,空间替换的是什么值。
这叫做sql预编译,通过设置参数值,再进行访问的技术。而不像普通的statement直接把参数值写到?里面去。

62,636

社区成员

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

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