67,549
社区成员




package common;
import java.sql.*;
public class DBConnection {
static Connection con = null;
static String mdbPath = null;
/** 设置 Access mdb数据库文件存放路径 */
public static void setMdbFolder(String path) {
mdbPath = "D:/JAVA/workspace/Jsp_exp3/WebContent/db";
}
/** 获取数据库连接 */
public static Connection getConnection() {
if (con == null) {
try { // 加载驱动程序
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (Exception e) {
e.printStackTrace();
System.out.println("加载数据库驱动失败!");
}
try { // 通过驱动程序管理器获取数据库连接
con = DriverManager.getConnection(
"jdbc:odbc:driver={Microsoft AccessDriver (*.mdb)};DBQ=" + mdbPath + "/student.mdb");
} catch (Exception e) {
e.printStackTrace();
System.out.println("获取数据库连接失败!");
}
}
return con;
}
/** 关闭数据库的操作 */
public static void closeConnection() {
if (con != null)
try {
con.close();
con = null;
} catch (SQLException e) {
e.printStackTrace();
System.out.println("关闭con对象失败!");
}
}
public static void main(String[] args) {
Connection conn = DBConnection.getConnection();
if(conn != null){
System.out.println("数据库链接成功!");
DBConnection.closeConnection();
}
}
}
Class.forName("com.hxtt.sql.access.AccessDriver");//这个不能改
String url="jdbc:Access:///f://111.mdb";//后面的目录的就是对应的access数据库存放的绝对位置
Connection conn=DriverManager.getConnection(url,"","");//后面的两个是对应的用户名和密码 可以尝试先不加这个
参考自百度贴吧
static String mdbPath = "E:\\student.mdb";
con = DriverManager.getConnection(
"jdbc:odbc:driver={Microsoft Access Driver (*.mdb,*.accdb)};DBQ=" + mdbPath, "",
"");
[/quote]
ODBC 我没用过,我不确定能否用文件的绝对路径来访问。(不能的可能性大)
你自己多研究研究吧。
[/quote]
好吧 谢谢~
static String mdbPath = "E:\\student.mdb";
con = DriverManager.getConnection(
"jdbc:odbc:driver={Microsoft Access Driver (*.mdb,*.accdb)};DBQ=" + mdbPath, "",
"");
[/quote]
ODBC 我没用过,我不确定能否用文件的绝对路径来访问。(不能的可能性大)
你自己多研究研究吧。
static String mdbPath = "E:\\student.mdb";
con = DriverManager.getConnection(
"jdbc:odbc:driver={Microsoft Access Driver (*.mdb,*.accdb)};DBQ=" + mdbPath, "",
"");
java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6964)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7121)
at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3080)
at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:323)
at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174)
at java.sql.DriverManager.getConnection(DriverManager.java:571)
at java.sql.DriverManager.getConnection(DriverManager.java:215)
at common.DBConnection.getConnection(DBConnection.java:23)
at common.DBConnection.main(DBConnection.java:47)
获取数据库连接失败!
难道真不能用写绝对路径的方式来连接吗?有没有啥解决办法?
java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6964)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7121)
at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3080)
at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:323)
at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174)
at java.sql.DriverManager.getConnection(DriverManager.java:571)
at java.sql.DriverManager.getConnection(DriverManager.java:215)
at common.DBConnection.getConnection(DBConnection.java:23)
at common.DBConnection.main(DBConnection.java:47)
获取数据库连接失败!
补充一下,在网上我找到两种连接access的方法,一种是通过写.mdb数据库文件的绝对路径来连接,也就是我上面用的那种;
还有一种是在控制面板添加odbc数据源的方式,这种我实验了一下,确实成功了。但我们老师要求用写绝对路径方式连接,结果报了以上的错误,,,,求大神解决办法,,,
try { // 通过驱动程序管理器获取数据库连接
con = DriverManager.getConnection(
"jdbc:odbc:driver={Microsoft AccessDriver (*.mdb)};DBQ=" + mdbPath + "/student.mdb", "",
"");
}