莫名其妙的错误

Salted-fish 2019-12-09 10:48:26
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1,bindArgs[0].toString());
System.out.println(preparedStatement.toString());
resultSet = preparedStatement.executeQuery();


1个常用的jdbc查询,bindArgs[0].toString()参数是前台传的字符串.有的参数resultSet 有返回,有的没有返回.但是没有返回的参数我用sql直接去数据库查是有参数的.程序也不报错.怎么办.............
...全文
88 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Salted-fish 2019-12-21
  • 打赏
  • 举报
回复
引用 1 楼 土豆是我的最爱 的回复:
可以把你没有返回结果的时候的sql语句和参数发出来看看那
版主,我要申请删帖.怎么删?
Salted-fish 2019-12-21
  • 打赏
  • 举报
回复
引用 10 楼 qybao 的回复:
这个没数据库环境跑一边还真不好判断 如果是IDE的话,debug时,变量监视窗口应该可以看到resultSet的 如果是手动jdb命令调试,可以用print打印resultSet的属性看看
这段时间有点忙,是这样的.MD,是哪个B崽子动了我的配置文件.把IP改了.
Salted-fish 2019-12-09
  • 打赏
  • 举报
回复
这个是有返回值的sql Executing SQL: SELECT CONNECT_BY_ROOT b.MATERIALNO AS topAssemblyItem,LEVEL AS bomLevel,b.BOM_ITEM_NO AS seq,b.BOM_COMPONENT AS partnumber,b.BASE_QTY AS Quantity,b.SORT_STRING AS PRIORITY,M.PART_DESC AS description,M.MATERIAL_STATUS AS itemStatus FROM WCADMIN.BOMMAT b LEFT JOIN WCADMIN.MATMAS M ON b.BOM_COMPONENT = M.PART_NO START WITH b.MATERIALNO = 'VSNX01Y0-MB2200' CONNECT BY b.MATERIALNO = PRIOR b.BOM_COMPONENT order siblings by seq 这个是没有返回值的sql Executing SQL: SELECT CONNECT_BY_ROOT b.MATERIALNO AS topAssemblyItem,LEVEL AS bomLevel,b.BOM_ITEM_NO AS seq,b.BOM_COMPONENT AS partnumber,b.BASE_QTY AS Quantity,b.SORT_STRING AS PRIORITY,M.PART_DESC AS description,M.MATERIAL_STATUS AS itemStatus FROM WCADMIN.BOMMAT b LEFT JOIN WCADMIN.MATMAS M ON b.BOM_COMPONENT = M.PART_NO START WITH b.MATERIALNO = 'VSNX02M4-BU1100' CONNECT BY b.MATERIALNO = PRIOR b.BOM_COMPONENT order siblings by seq 两者只是参数不同. 我用下面的sql去数据库直接查又有数据数来. 程序我使用while (resultSet.next())遍历数据的.下面的sql直接跳过了while循环.所以我判定它没有返回值.debug的时候resultSet参数不知道怎么看.
Salted-fish 2019-12-09
  • 打赏
  • 举报
回复
引用 1 楼 土豆是我的最爱 的回复:
可以把你没有返回结果的时候的sql语句和参数发出来看看那
重写了preparedStatement preparedStatement = new LoggableStatement(connection,sql);; preparedStatement.setString(1,bindArgs[0].toString()); System.out.println("Executing SQL: "+((LoggableStatement)preparedStatement).getQueryString()); resultSet = preparedStatement.executeQuery(); 打印出来运行的sql. Executing SQL: SELECT CONNECT_BY_ROOT b.MATERIALNO AS topAssemblyItem,LEVEL AS bomLevel,b.BOM_ITEM_NO AS seq,b.BOM_COMPONENT AS partnumber,b.BASE_QTY AS Quantity,b.SORT_STRING AS PRIORITY,M.PART_DESC AS description,M.MATERIAL_STATUS AS itemStatus FROM WCADMIN.BOMMAT b LEFT JOIN WCADMIN.MATMAS M ON b.BOM_COMPONENT = M.PART_NO START WITH b.MATERIALNO = 'VSNX02M4-BU1100' CONNECT BY b.MATERIALNO = PRIOR b.BOM_COMPONENT order siblings by seq
qybao 2019-12-09
  • 打赏
  • 举报
回复
引用 4 楼 Salted-fish 的回复:
大概是这样的,但是同样的程序,前台传另1个参数能返回参数.
两个参数直接在数据库用sql查都有数据.为什同样的程序,有1个有返回,有1个没返回

把SQL打印出来看看
Salted-fish 2019-12-09
  • 打赏
  • 举报
回复
引用 3 楼 qybao 的回复:
【但是没有返回的参数我用sql直接去数据库查是有参数的】没明白啥意思? 直接用sql查有数据,但是通过程序查没数据,这这个意思吗?
大概是这样的,但是同样的程序,前台传另1个参数能返回参数. 两个参数直接在数据库用sql查都有数据.为什同样的程序,有1个有返回,有1个没返回
qybao 2019-12-09
  • 打赏
  • 举报
回复
【但是没有返回的参数我用sql直接去数据库查是有参数的】没明白啥意思?
直接用sql查有数据,但是通过程序查没数据,这这个意思吗?
程序yang 2019-12-09
  • 打赏
  • 举报
回复
把sql语句和相对应的代码贴出来看看
  • 打赏
  • 举报
回复
可以把你没有返回结果的时候的sql语句和参数发出来看看那
qybao 2019-12-09
  • 打赏
  • 举报
回复
这个没数据库环境跑一边还真不好判断
如果是IDE的话,debug时,变量监视窗口应该可以看到resultSet的
如果是手动jdb命令调试,可以用print打印resultSet的属性看看

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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