jdbc使用preparedstatement的诡异问题

craftsman_kk 2018-01-18 10:14:24
PreparedStatement pstmt2 = conn.prepareStatement("select * from employee where num = ‘N014’ " );
用这句查询没问题,但是用了占位符,死活不行
String num = "N014";
PreparedStatement pstmt2 = conn.prepareStatement("select * from employee where num = ? " );
pstmt2.setString(1, "N014");
返回的总是空集,有大神帮忙看看吗
...全文
788 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
craftsman_kk 2018-01-19
  • 打赏
  • 举报
回复
找到错误了,数据库中字符串定义的是char(10), 提取出来后的String存储的也是10个字符,都被用32补齐了,所以匹配不上,所以填充的时候也把String字符串转变成10个字符,不足用32补齐就好
ywl470812087 2018-01-18
  • 打赏
  • 举报
回复
String num = "N014";这里定义字符串没有使用这可以去掉,这句是垃圾代码。 String sql="select * from employee where num = ? " PreparedStatement pstmt2 = conn.prepareStatement(sql); pstmt2.setString(1, "N014"); 没有啥问题说明你查询的结果就是空集。你把查询的结果贴出来看看

62,615

社区成员

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

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