开发者社区> 问答> 正文

PreparedStatement,调用getParameterMetaData出错? 报错

PreparedStatement,调用getParameterMetaData出错? 400 报错

 

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();

con=DriverManager.getConnection(

"jdbc:sqlserver://192.168.8.8:1433;DatabaseName=XXST_SYS_OA",

"sa",

"1");

result=new Result();

String query="select p.remoteProblemId,r.fSumResult,r.fProblemCode from   OA_Problem_Record r,OA_Temp_Problem p " +

"where p.localProblemCode=r.fProblemCode and p.remoteProblemId =?";

ps=con.prepareStatement(query);

ParameterMetaData pmd = ps.getParameterMetaData();

 

System.out.println("参数个数:"+pmd.getParameterCount());

 

展开
收起
优选2 2020-06-04 18:05:36 956 0
1 条回答
写回答
取消 提交回答
  • 出错就解决呗,小意思

    ######

    不知道如何解决啊,是不是缺东西了。。

    报错如下:

    com.microsoft.sqlserver.jdbc.SQLServerException: com.microsoft.sqlserver.jdbc.SQLServerException: 列名 'localProblemCode' 无效。

    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)

    at com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.<init>(Unknown Source)

    at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.getParameterMetaData(Unknown Source)

    at client.Test.queryProblemByID(Test.java:61)

    at client.Test.main(Test.java:28)

    Exception in thread "main" java.lang.NullPointerException

    at java.io.FileOutputStream.write(FileOutputStream.java:247)

    at client.Test.main(Test.java:30)

    ######

    对嘛,不把错误信息贴出来怎么解决啊

    列名无效,你先用 Sql server 客户端执行以下你的SQL语句,先把SQL语句弄对再说。记得把 ? 随便替换成某个参数值再去执行

    ######

    sql语句没问题的。。

    ######

    不调用getParameterMetaData方法,直接读取结果是OK的?

    ######

    对啊

    ######

    引用来自#7楼“崔超”的帖子

    对啊

    不晓得,可以试试在 SELECT 的字段里也加入 localProblemCode 这个

    ######

    加了也不行。。

    ######

    就是从两个表查询,带参数的时候出错,你们都遇到过吗??

    2020-06-05 13:11:47
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载