Java中的SQL查询抛出异常

时间:2011-07-13 20:43:50

标签: java sql ms-access

我从Access数据库中获取了一些Java。这是执行查询的代码:

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String filename = "C:/Development/tomcat/webapps/inquire/inquire.mdb";
String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";
database+= filename.trim() + ";DriverID=22;READONLY=true}";
Connection con = DriverManager.getConnection( database ,"","");
Statement s = con.createStatement();
s.execute ("SELECT manager FROM inquiries");
ResultSet rs = s.getResultSet();

是的,在该位置有一个名为inquire.mdb的数据库,其中有一个名为'queries'的表,其中一列名为'manager'

然而,当代码执行时,我得到了:

  

java.sql.SQLException:找不到列

这真的很奇怪,因为在另一个地方这个查询有效:

String theQuery = "SELECT DISTINCT manager FROM inquiries";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        String filename = "C:/Development/tomcat/webapps/inquire/inquire.mdb";
        String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";
        database+= filename.trim() + ";DriverID=22;READONLY=true}";
        Connection con = DriverManager.getConnection( database ,"","");
        Statement s = con.createStatement();
        s.execute(theQuery);
        ResultSet rs = s.getResultSet();

1 个答案:

答案 0 :(得分:0)

当然,当我遇到编程问题时几乎总是问题,这是我做的蠢事。

问题在于处理结果集,而不是查询。我简化了查询,但仍在处理中使用其他列。所以是的,当然它找不到专栏,我甚至没有用我的查询来拉它。

如果我不是傻瓜,我会打印整个frigging堆栈跟踪,而不仅仅是愚蠢的例外。

然后我可以找到它正在死亡的那条线。

然后只需几秒钟即可解决。

而不是,你知道,HOURS。