我已经正确添加了所有必要的JARS:
我的数据库是100MB。虽然只使用Jacksess,但相同的查询需要4-5秒,而这个需要大约1-2分钟。我做了一些研究,发现Ucanaccess反映了整个数据库。我怎么能禁用它?还是有必要吗?
我也尝试过参数(memory,singleConnection,skipIndexes),但它没有改变任何东西。
我必须使用UcanAccess,因为我想使用JasperReports。为此,我需要一个有效的连接。
我的代码:
try {
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
String connectionURL = "jdbc:ucanaccess://P:/myDatabase.accdb";
Connection conn = DriverManager.getConnection(connectionURL, "", "");
Statement stmt = conn.createStatement();
String query =
"Select * from REQ_ACQ_ACQUISITIONS";
ResultSet rs = stmt.executeQuery(query);
while ( rs.next() ) {
int numColumns = rs.getMetaData().getColumnCount();
for ( int i = 1 ; i <= numColumns ; i++ ) {
if (i > 1) System.out.print(", ");
String columnValue = rs.getString(i);
System.out.print(columnValue + " " + rs.getMetaData().getColumnName(i));
}
System.out.println("");
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
答案 0 :(得分:3)
请注意,这不是真正的“连接时间”,而是整个JVM生命中第一次连接的时间。所以这是一个启动时间,就像数据库启动时间。以下所有连接都是明确的。有几个方法可以大大减少第一次连接的时间。最简单的方法是构建一个过滤器数据库,作为外部表,链接报告所需的唯一表。