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());
出错就解决呗,小意思
######不知道如何解决啊,是不是缺东西了。。
报错如下:
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的?
######对啊
######对啊
不晓得,可以试试在 SELECT 的字段里也加入 localProblemCode 这个
######加了也不行。。
######就是从两个表查询,带参数的时候出错,你们都遇到过吗??
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。