Java 如何使用Spring配置UCanAccess JDBC驱动程序?
每当我尝试使用ODBC驱动程序访问MDB文件时,它都会给我一个错误:Java 如何使用Spring配置UCanAccess JDBC驱动程序?,java,spring,ms-access,jdbc,ucanaccess,Java,Spring,Ms Access,Jdbc,Ucanaccess,每当我尝试使用ODBC驱动程序访问MDB文件时,它都会给我一个错误: error : "[Microsoft][ODBC Driver Manager] Invalid string or buffer length exception" 所以我决定用这个来代替 有没有人有使用Spring配置UCanAccess JDBC驱动程序的经验 我已将UCanAccess.jar放入我的lib文件夹中,并按如下方式进行了配置,但这不起作用: <bean id="dataSource" cl
error : "[Microsoft][ODBC Driver Manager] Invalid string or buffer length exception"
所以我决定用这个来代替
有没有人有使用Spring配置UCanAccess JDBC驱动程序的经验
我已将UCanAccess.jar放入我的lib文件夹中,并按如下方式进行了配置,但这不起作用:
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" ref="jdbcDriver" />
<property name="url" value="jdbc:ucanaccess://C:\\XXXX.mdb" />
<property name="username" value="" />
<property name="password" value="" />
</bean>
<bean id="jdbcDriver" class="net.ucanaccess.jdbc.UcanaccessDriver" />
我的开发环境:Spring Framework 3.x,带JdbcTemplate,Windows 7 64位,Microsoft Access 2013。您必须将所有UCanAccess依赖项放在您的lib文件夹中(请参阅UCanAccess发行版lib文件夹中的jar:jackcess、hsqldb、commons logging和commons lang)。这对我来说适用于此依赖项
<dependency>
<groupId>net.sf.ucanaccess</groupId>
<artifactId>ucanaccess</artifactId>
<version>4.0.0</version>
</dependency>
相关,而非特定于Spring:。
package com.test.learn.java8;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class MsAccessDatabaseConnection {
public static void main(String[] args) {
// variables
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
// Step 1: Loading driver
try {
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
} catch (ClassNotFoundException cnfex) {
System.out.println("Problem in loading or "
+ "registering MS Access JDBC driver");
cnfex.printStackTrace();
}
// Step 2: open db connection
try {
String msAccDB = "C:/Users/vikal/OneDrive/Documents/VikDB.accdb";
//"D:/WORKSPACE/TEST_WORKSPACE/Java-JDBC/Player.accdb";
String dbURL = "jdbc:ucanaccess://" + msAccDB;
// Step 2.A: Create and get connection using DriverManager class
connection = DriverManager.getConnection(dbURL);
// Step 2.B: Creating JDBC Statement
statement = connection.createStatement();
// Step 2.C: Executing SQL & retrieve data into ResultSet
resultSet = statement.executeQuery("SELECT * FROM Employee");
System.out.println("ID\tName\t\t\tAge\tsalary");
while (resultSet.next()) {
System.out.println(resultSet.getInt(1) + "\t" +
resultSet.getString(2) + "\t" +
resultSet.getString(3) + "\t" +
resultSet.getString(4));
}
} catch (SQLException sqlex) {
sqlex.printStackTrace();
} finally {
try {
if (null != connection) {
// cleanup resources, once after processing
resultSet.close();
statement.close();
// and then finally close connection
connection.close();
}
} catch (SQLException sqlex) {
sqlex.printStackTrace();
}
}
}
}