我写的一个类,用于连接到Access数据库的,你自己看吧!
import java.sql.*;/**
* 得到与Access数据库的连接(Connection)的类
*/
public final class ConnectAccessDB
{
private static final String DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";
private static String fileName = ""; // 保留数据库文件路径
private static String password = ""; // 保留数据库文件密码
private static Connection conn = null; private ConnectAccessDB() {
} public static Connection getConnection(String fileName) throws SQLException {
return getConnection(fileName, "");
} /*
* @param fileName Access数据库文件(.mdb文件)的完整路径 String
* @param password Access数据库文件(.mdb文件)的密码 String
*/
public static Connection getConnection(String fileName, String password) throws SQLException
{
if(fileName == null || password == null)
throw new NullPointerException("getConnection方法参数为null"); String url = "jdbc:odbc:DRIVER=Microsoft Access Driver (*.mdb);DBQ="
+ fileName + ";PWD=" + password;
try
{
if(conn != null && !conn.isClosed()) {
if(ConnectAccessDB.fileName.equals(fileName) &&
ConnectAccessDB.password.equals(password)) {
return conn;
}
else {
conn.close();
}
} Class.forName(DRIVER);
conn = DriverManager.getConnection(url);
}
catch(ClassNotFoundException cnfe) {
conn = null;
System.out.println("不能找到数据库驱动程序" + DRIVER);
}
catch (SQLException sqle)
{
conn = null;
sqle.printStackTrace();
throw new SQLException("连接Access数据库出错");
} ConnectAccessDB.fileName = fileName;
ConnectAccessDB.password = password;
return conn;
}}
import java.sql.*;/**
* 得到与Access数据库的连接(Connection)的类
*/
public final class ConnectAccessDB
{
private static final String DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";
private static String fileName = ""; // 保留数据库文件路径
private static String password = ""; // 保留数据库文件密码
private static Connection conn = null; private ConnectAccessDB() {
} public static Connection getConnection(String fileName) throws SQLException {
return getConnection(fileName, "");
} /*
* @param fileName Access数据库文件(.mdb文件)的完整路径 String
* @param password Access数据库文件(.mdb文件)的密码 String
*/
public static Connection getConnection(String fileName, String password) throws SQLException
{
if(fileName == null || password == null)
throw new NullPointerException("getConnection方法参数为null"); String url = "jdbc:odbc:DRIVER=Microsoft Access Driver (*.mdb);DBQ="
+ fileName + ";PWD=" + password;
try
{
if(conn != null && !conn.isClosed()) {
if(ConnectAccessDB.fileName.equals(fileName) &&
ConnectAccessDB.password.equals(password)) {
return conn;
}
else {
conn.close();
}
} Class.forName(DRIVER);
conn = DriverManager.getConnection(url);
}
catch(ClassNotFoundException cnfe) {
conn = null;
System.out.println("不能找到数据库驱动程序" + DRIVER);
}
catch (SQLException sqle)
{
conn = null;
sqle.printStackTrace();
throw new SQLException("连接Access数据库出错");
} ConnectAccessDB.fileName = fileName;
ConnectAccessDB.password = password;
return conn;
}}
你不让客户装access,你连什么数据库?!你自己把设好密码的mdb文件发布过去不就得了,这又何必要用程序去设密码?!
而且你发布你的应用时,不配置odbc就想连Access?!这种事,难道也想用java去做?!
不配置odbc也是可以的,只需要去下载jdbc driver for access就行了,jdbc-odbc桥性能差了点。
我只是希望我的应用独立性能高一点。
可能我的需求过分了,我想可以通过别的途径来解决这个问题。