prepareStatement有时无法从数据库获得数据

yingziorg 2014-06-21 12:09:39
sm = ct.prepareStatement("select unino,password,spec4,attrs from userinfo where unino=?");
sm.setString(1, "8431");
rs = sm.executeQuery();
这个不知道为什么就是取不到数据,
可是改成 sm = ct.prepareStatement("select unino,password,spec4,attrs from userinfo where unino='8431'");又可以从数据库取到,不只有这个地方,还有许多其他也有这种问题,然后奇怪的就是,有的地方他有没有这种问题!
...全文
222 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
yingziorg 2014-06-25
  • 打赏
  • 举报
回复
引用 13 楼 magi1201 的回复:
引用 12 楼 u011008528 的回复:
[quote=引用 11 楼 magi1201 的回复:] 确实是个奇怪的问题 将PreparedStatement 换为 Statement 试试?
这个是可以,问题就是我现在的工作就是把Statement 换成PreparedStatement
我把你上面的东西也跑了一下,发现不了问题啊 你在 rs = sm.executeQuery(); 这一行打断点,执行前,看看sm 的参数,重点看sql语句和给的参数,尤其看给的参数格式上有没有什么问题。[/quote]知道错在那里了,数据库表的问题!表的字段是char
姜小白- 2014-06-21
  • 打赏
  • 举报
回复
中文的 ? 英文的 ?
姜小白- 2014-06-21
  • 打赏
  • 举报
回复
sm = ct.prepareStatement("select unino,password,spec4,attrs from userinfo where unino=?");
你的这个
?
是中文状态的吧,应该用英文的
?
yingziorg 2014-06-21
  • 打赏
  • 举报
回复
引用 13 楼 magi1201 的回复:
引用 12 楼 u011008528 的回复:
[quote=引用 11 楼 magi1201 的回复:] 确实是个奇怪的问题 将PreparedStatement 换为 Statement 试试?
这个是可以,问题就是我现在的工作就是把Statement 换成PreparedStatement
我把你上面的东西也跑了一下,发现不了问题啊 你在 rs = sm.executeQuery(); 这一行打断点,执行前,看看sm 的参数,重点看sql语句和给的参数,尤其看给的参数格式上有没有什么问题。[/quote]好吧,这工具不怎么会用
yingziorg 2014-06-21
  • 打赏
  • 举报
回复
引用 13 楼 magi1201 的回复:
引用 12 楼 u011008528 的回复:
[quote=引用 11 楼 magi1201 的回复:]
确实是个奇怪的问题 将PreparedStatement 换为 Statement 试试?
这个是可以,问题就是我现在的工作就是把Statement 换成PreparedStatement

我把你上面的东西也跑了一下,发现不了问题啊
你在 rs = sm.executeQuery(); 这一行打断点,执行前,看看sm 的参数,重点看sql语句和给的参数,尤其看给的参数格式上有没有什么问题。[/quote]感觉看不出什么呀
姜小白- 2014-06-21
  • 打赏
  • 举报
回复
引用 12 楼 u011008528 的回复:
引用 11 楼 magi1201 的回复:
确实是个奇怪的问题 将PreparedStatement 换为 Statement 试试?
这个是可以,问题就是我现在的工作就是把Statement 换成PreparedStatement
我把你上面的东西也跑了一下,发现不了问题啊 你在 rs = sm.executeQuery(); 这一行打断点,执行前,看看sm 的参数,重点看sql语句和给的参数,尤其看给的参数格式上有没有什么问题。
yingziorg 2014-06-21
  • 打赏
  • 举报
回复
引用 11 楼 magi1201 的回复:
确实是个奇怪的问题 将PreparedStatement 换为 Statement 试试?
这个是可以,问题就是我现在的工作就是把Statement 换成PreparedStatement
姜小白- 2014-06-21
  • 打赏
  • 举报
回复
确实是个奇怪的问题 将PreparedStatement 换为 Statement 试试?
yingziorg 2014-06-21
  • 打赏
  • 举报
回复
还因为是编译器的问题,换了2个编译器还是一样!
yingziorg 2014-06-21
  • 打赏
  • 举报
回复
引用 8 楼 magi1201 的回复:
引用 6 楼 u011008528 的回复:
[quote=引用 2 楼 magi1201 的回复:] 中文的 ? 英文的 ?
什么中文,英文呀??参数吗??
我刚才判断错了。楼主取不出数据,有异常信息吗? 楼主将PreparedStatement 换为 Statement 看能不能正常取出数据呢?[/quote]没有,什么异常都没有
姜小白- 2014-06-21
  • 打赏
  • 举报
回复
引用 6 楼 u011008528 的回复:
引用 2 楼 magi1201 的回复:
中文的 ? 英文的 ?
什么中文,英文呀??参数吗??
我刚才判断错了。楼主取不出数据,有异常信息吗? 楼主将PreparedStatement 换为 Statement 看能不能正常取出数据呢?
yingziorg 2014-06-21
  • 打赏
  • 举报
回复
数据库是oracle
yingziorg 2014-06-21
  • 打赏
  • 举报
回复
引用 2 楼 magi1201 的回复:
中文的 ? 英文的 ?
什么中文,英文呀??参数吗??
yingziorg 2014-06-21
  • 打赏
  • 举报
回复
引用 1 楼 magi1201 的回复:
sm = ct.prepareStatement("select unino,password,spec4,attrs from userinfo where unino=?");
你的这个
?
是中文状态的吧,应该用英文的
?
不明白
姜小白- 2014-06-21
  • 打赏
  • 举报
回复
引用 3 楼 xiangyuecn 的回复:
用中文的估计就直接语法错误了 怪问题哈,坐等答案
嗯 是滴 中文时,赋参数时就报无效的列索引了。 是个奇怪的问题,试不出问题在哪里。
高坚果兄弟 2014-06-21
  • 打赏
  • 举报
回复
引用 2 楼 magi1201 的回复:
中文的 ? 英文的 ?
用中文的估计就直接语法错误了 怪问题哈,坐等答案

81,092

社区成员

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

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