eclipse连接access数据库
这些步骤已经做了:1打开数据源《ODBC》
2.在ODBC管理器对话框中选择”用户DSN“,单击”添加选择“access”那个
3打开“驱动程序”。按要求配置一下。单击完成。
我写程序写到DriverManager.registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver());是提示错误,该怎么处理我不太会,是因为eclipse插件没装还是什么原因? 展开
2015-12-03 · 做真实的自己 用良心做教育
两种方式:
一:ODBC 数据源
二:直连
一)
开始
控制面板
管理工具
数据源(ODBC)
用户DSN或系统DSN
点添加
找到"Microsoft Access Driver (*.mdb)",选中,再点完成>>自定义数据源名称,可创
一个新的或选择已经有的Access数据库(.mdb)其它可以不选
8. 确定>>确定
到此数据源已经建立成功
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection("jdbc:odbc:数据源名称", "数据库用户名(如有)没有则空", "用户密码(如有)没有则空");
System.out.println(conn);
Statement sta = conn.createStatement();
ResultSet resu = sta.executeQuery("select * from Roche_position");
if(resu.next()){
System.out.println(resu.getString("cname"));
}
System.out.println("exit");
}catch(Exception e){
e.printStackTrace();
}
}
二)
直接在JAVA代码内部与Access数据库连接
注意:jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};这里的空格,不能少!否则会有异常
String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=F:\\ge\\123.MDB";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection(url);
System.out.println(conn);
Statement sta = conn.createStatement();
ResultSet resu = sta.executeQuery("select * from Roche_position");
if(resu.next()){
System.out.println(resu.getString("cname"));
}
System.out.println("exit");
}catch(Exception e){
e.printStackTrace();
}
dbDriver = jdbc:odbc
dbUserName = admin
dbPassword = 123
defaultDbName = DVDManager
什么意思?我写程序写到DriverManager.registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver());就提示错误了
谢谢啊 等你的例子咯
先说一下你的错误吧。
错误消息是不是
Access restriction: The constructor JdbcOdbcDriver() is not accessible due to restriction on required library xxxxxx\jre\lib\rt.jar
具体的原因没有找到。官司方也没有说,就当是SUN对自己JAR的一个保护机制吧
注册驱动其实就是向内存中加载这个驱动类
DriverManager.registerDriver
是显示的,用一个类实例来加载,
除了这个以外,还有另一个方法就是用 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")
来强制向内存中加载类,这个方法比上一个的限制就小了很多。
测试类
import java.sql.Connection;
import java.sql.DriverManager;
public class T {
public static void main(String[] args) throws Exception {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
// DriverManager.registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver());
Connection conn = DriverManager.getConnection("jdbc:odbc:users");
System.out.println(conn.isClosed());
}
}
users换成你写的ODBC数据源就可以了。
输出结果为false,即连接没有关闭。
但是我很不喜欢这个方法。因为这需要添加ODBC,要是想要通用一点呢,能不能直接找到MDB文件呢?
可以
jdbc:odbc:users换成
jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=I:\\aa.mdb
DBQ后面写上你的文件路径就可以了,比添加ODBC好多了。