例如: select ADM from ATABLE union select ADM from BTABLE union select ADM from CTABEL我在ACCESS中查询到的是2条数据可在JSP中 ResultSet rs=stmt.executeQuery("select ADM from ATABLE union select ADM from BTABLE union select ADM from CTABEL ");if(rs.last()) System.out.println("---" + rs.getRow() + "---"); ---结果--- ---1--- 不能理解
还是在语句上找 select count(name) from atable where atable.a not int(select 子句)
我发现把SQL语句反过来写就可以在JSP中得到2条数据例:把上面的SQL语句改为这样的 select ADM from BTABLE union select ADM from CTABLE union select ADM from ATABEL我就可以得到2条数据。注:ATABLE表在数据库中有1条数据 BTABLE表在数据库中有2条数据 CTABLE表在数据库中有2条数据
我也正要问一个有关问题,为什么我写同样的语句 String strUrl="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=" + fileName; Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");编译器报错: conn.java:12: unreported exception java.lang.ClassNotFoundException; must be cau ght or declared to be thrown Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); ^ 这是怎么回事?
哎。JSP连接其他数据库都没这么多问题。可以连了ACCESS后怎么总是一大堆问题????
whoopee(帅得惊动了党)must be caught or declared to be thrown你是没有使用TRY语句。可能你是把这句话封装到函数或类里面了。使用TRY语句catch ClassNotFoundException这个异常就可以了。你这是编译错误
select ADM from ATABLE union select ADM from BTABLE union select ADM from CTABEL我在ACCESS中查询到的是2条数据可在JSP中
ResultSet rs=stmt.executeQuery("select ADM from ATABLE union select ADM from BTABLE union select ADM from CTABEL
");if(rs.last())
System.out.println("---" + rs.getRow() + "---");
---结果---
---1---
不能理解
select count(name) from atable where atable.a not int(select 子句)
select ADM from BTABLE union select ADM from CTABLE union select ADM from ATABEL我就可以得到2条数据。注:ATABLE表在数据库中有1条数据
BTABLE表在数据库中有2条数据
CTABLE表在数据库中有2条数据
public void updateRef(int i, Ref ref) throws SQLException { /* compiled code */ } public ResultSetMetaData getMetaData() throws SQLException { /* compiled code */ } public SQLWarning getWarnings() throws SQLException { /* compiled code */ } public void setWarning(SQLWarning sqlWarning) throws SQLException { /* compiled code */ }
String strUrl="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=" + fileName;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");编译器报错:
conn.java:12: unreported exception java.lang.ClassNotFoundException; must be cau
ght or declared to be thrown
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
^
这是怎么回事?
看看我的源代码:
import java.sql.*;
import java.lang.*;
public class conn
{
public static void main(String[] args){
Connection con; try{
String connStr = "jdbc:odbc:driver={MicrosoftAccessDriver(*.mdb)};dbq=test.mdb";
//try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//}
//catch(Exception e){
// System.err.println(e);
//}
//Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection(connStr);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select * from User");
//rs.last();
int intRowCount = rs.getRow();
System.out.println(intRowCount);
}
catch(SQLException e){
System.err.println(e.getMessage());
} //stmt.close();
//con.close();
}
}
我觉得没有问题呀?
但是就是在class那里报错呀!
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(Exception e){
System.err.println(e);
}
在这里你必须捕捉异常。否者根本就编译不过去。
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(Exception e){
System.err.println(e);
}
这样了,编译是通过了,但是java后出现错误:
[Microsoft][ODBC 驱动程序 管理器] 未发现数据源名称并且未指定默认驱动程序怎么回事?
String connStr = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=test.mdb";
"jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ="
你在driverName这里加上双引号就表示他是一个字符串了,怎么还可以在里边进行运算!
你可以先在ODBC里为数据源设一个名字,到时候再用jdbc:odbc桥后边直接加上就可以了!!
to lhzongji(踪迹)你编译的时候有没有这个问题呀?
[Microsoft][ODBC 驱动程序 管理器] 未发现数据源名称并且未指定默认驱动程序说明没找到数据库文件,你要确认你的数据库文件在当前目录下面,并且文件名大小写和你程序里面指定的完全一致。
import java.lang.*;
public class conn
{
public static void main(String[] args){
Connection con; try{
String connStr = "jdbc:odbc:driver={MicrosoftAccessDriver(*.mdb)};dbq=test.mdb"; Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con = DriverManager.getConnection(connStr);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select * from User");
//rs.last();
int intRowCount = rs.getRow();
System.out.println(intRowCount);
}catch(ClassNotFoundException e){
System.err.println(e.getMessage());
}catch(SQLException e){
System.err.println(e.getMessage());
} //stmt.close();
//con.close();
}
}
你应该先 File f = new File("test.mdb");
String connStr = "jdbc:odbc:driver={MicrosoftAccessDriver(*.mdb)};dbq="+f.getAbsolutePath();