PreparedStatement不能用

yanhongqi_happyboy 2008-09-11 09:19:58
我用jdbc连接oracle10数据库,连接都是对的,也能连接数据库。
但当我用PreparedStatement的传参方式时却不能用。
如我用
PreparedStatement pstmt = conn.prepareStatement("select count(*) from tab_AA where aa=?");
pstmt.setString(1,"aaaa");
rs = pstmt.executeQuery();
这样查不出结果
但当我这样写时
PreparedStatement pstmt = conn.prepareStatement("select count(*) from tab_AA where aa='"+aa+"'");
rs = pstmt.executeQuery();
却能查出数据。
请问各位这是什么原因啊,我错在哪里?
...全文
59 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yanhongqi_happyboy 2008-09-11
  • 打赏
  • 举报
回复
是。
不过我已经解决了。
因为我数据库字段时char类型的,我把它写成这样
PreparedStatement pstmt = conn.prepareStatement("select count(*) from tab_AA where trim(aa)=?");
pstmt.setString(1,"aaaa");
rs = pstmt.executeQuery();
就行了。没想到会是这个引起的,郁闷.....
leem06 2008-09-11
  • 打赏
  • 举报
回复
先确定PreparedStatement pstmt = conn.prepareStatement("select count(*) from tab_AA where aa='"+aa+"'");这里的aa是否等于字符串"aaaa"
bobor_2008 2008-09-11
  • 打赏
  • 举报
回复
PreparedStatement pstmt = conn.prepareStatement("select count(*) from tab_AA where aa=?");
pstmt.setString(1,"aaaa");


PreparedStatement pstmt = conn.prepareStatement("select count(*) from tab_AA where aa='"+aa+"'");
中aa的值也是字符串"aaaa"吗?

这个问题我还是第一次看到.郁闷

62,614

社区成员

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

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