java使用PreparedStatement连接数据库问题求解

qt.李 2020-03-06 11:27:18
我在执行查询语句:

sql="select top 1 batchno from proscjhb where procwip>0 and batchno= ? and techno = '57'"
然后:
pstm.setObject(1,"S9R001");

rs = pstm.executeQuery();
System.out.println(pstm.toString());
打印出的sql语句还是
select top 1 batchno from proscjhb where procwip>0 and batchno= ? and techno = '57'

参数没有添加进去?没有起到作用?
求大神解答!我用的是Sqlserver数据库。连接数据库是没有问题的,SQL执行也没有问题.
...全文
442 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
成都的大熊猫 2020-03-09
  • 打赏
  • 举报
回复
再说你还没调rs.next
成都的大熊猫 2020-03-09
  • 打赏
  • 举报
回复
没有给preparedstatement赋空值吧
敏敏^V^ 2020-03-08
  • 打赏
  • 举报
回复
引用 楼主 qt.李的回复:
我在执行查询语句:

sql="select top 1 batchno from proscjhb where procwip>0 and batchno= ? and techno = '57'"
然后:
pstm.setObject(1,"S9R001");

rs = pstm.executeQuery();
System.out.println(pstm.toString());
打印出的sql语句还是
select top 1 batchno from proscjhb where procwip>0 and batchno= ? and techno = '57'

参数没有添加进去?没有起到作用?
求大神解答!我用的是Sqlserver数据库。连接数据库是没有问题的,SQL执行也没有问题.
你把1改成0试试
qq_39936465 2020-03-06
  • 打赏
  • 举报
回复
引用 3 楼 qt.李 的回复:
加了,SQL语句执行成功了,只不过执行的是select top 1 batchno from proscjhb where procwip>0 and batchno= ? and techno = '57’ 代码贴上:
你PreparedStatement用法有问题啊 https://www.cnblogs.com/onmyway20xx/p/4273321.html
qt.李 2020-03-06
  • 打赏
  • 举报
回复
引用 4 楼 Salted-fish的回复:
看下你sql字符串怎么写的? 还有你这个是批处理循环里面不是这样写的.
字符串就在最上面
Salted-fish 2020-03-06
  • 打赏
  • 举报
回复
看下你sql字符串怎么写的? 还有你这个是批处理循环里面不是这样写的.
qt.李 2020-03-06
  • 打赏
  • 举报
回复
引用 2 楼 qq_39936465 的回复:
[quote=引用 楼主 qt.李 的回复:]
参数没有添加进去?没有起到作用?
求大神解答!我用的是Sqlserver数据库。连接数据库是没有问题的,SQL执行也没有问题.

sql加入了PreparedStatement了么?
PreparedStatement pstmt = conn.prepareStatement(sql);[/quote]


加了,SQL语句执行成功了,只不过执行的是select top 1 batchno from proscjhb where procwip>0 and batchno= ? and techno = '57’
代码贴上:
qq_39936465 2020-03-06
  • 打赏
  • 举报
回复
引用 楼主 qt.李 的回复:
参数没有添加进去?没有起到作用? 求大神解答!我用的是Sqlserver数据库。连接数据库是没有问题的,SQL执行也没有问题.
sql加入了PreparedStatement了么? PreparedStatement pstmt = conn.prepareStatement(sql);
qt.李 2020-03-06
  • 打赏
  • 举报
回复
qq_39936465 2020-03-06
  • 打赏
  • 举报
回复
引用 15 楼 qt.李 的回复:
[quote=引用 14 楼 qt.李的回复:]我是直接调用这个方法啊,传入的sql参数
和不同的集合[/quote] 贴一下完整的程序不然谁知道你到底怎么写的
qt.李 2020-03-06
  • 打赏
  • 举报
回复
引用 14 楼 qt.李的回复:
我是直接调用这个方法啊,传入的sql参数
和不同的集合
qt.李 2020-03-06
  • 打赏
  • 举报
回复
我是直接调用这个方法啊,传入的sql参数
qq_39936465 2020-03-06
  • 打赏
  • 举报
回复
其他的sql需要再次导入,你导入其他sql语句了吗?如果没导入新的语句,在原来的sql上反复set怎么会得到想要的结果。 而且导入sql语句,set后是需要执行的,PreparedStatement和Statement有差别的不会自己主动执行。
qq_39936465 2020-03-06
  • 打赏
  • 举报
回复
引用 11 楼 qt.李 的回复:
我这个是要复用的,这条sql只有一个参数,但是其它sql不止一个参数啊
就是你重复使用的方法不对,就第一次使用时有效。
qt.李 2020-03-06
  • 打赏
  • 举报
回复
引用 10 楼 qq_39936465的回复:
[quote=引用 9 楼 qt.李 的回复:] 你的sql语句只有一个问号,所以只有1需要set。你循环i+1没用。
这不是错误点啊[/quote] 虽然不会报错,但是因为你的设计错误得不到你想要的结果。[/quote] 我这个是要复用的,这条sql只有一个参数,但是其它sql不止一个参数啊
qq_39936465 2020-03-06
  • 打赏
  • 举报
回复
引用 9 楼 qt.李 的回复:
你的sql语句只有一个问号,所以只有1需要set。你循环i+1没用。
这不是错误点啊[/quote] 虽然不会报错,但是因为你的设计错误得不到你想要的结果。
qt.李 2020-03-06
  • 打赏
  • 举报
回复
引用 8 楼 qq_39936465的回复:
[quote=引用 7 楼 qt.李 的回复:] 我是参照网上的PreparedStatement用法来写的,请问我写的问题在哪?
你的sql语句只有一个问号,所以只有1需要set。你循环i+1没用。[/quote] 这不是错误点啊
qq_39936465 2020-03-06
  • 打赏
  • 举报
回复
引用 7 楼 qt.李 的回复:
我是参照网上的PreparedStatement用法来写的,请问我写的问题在哪?
你的sql语句只有一个问号,所以只有1需要set。你循环i+1没用。
qt.李 2020-03-06
  • 打赏
  • 举报
回复
我是参照网上的PreparedStatement用法来写的,请问我写的问题在哪?

62,614

社区成员

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

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