错误1:[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
使用ODBC进行链接时,需要添加数据源
* 在windows下,【开始】->【控制面板】->【性能和维护】->【管理工具】->【数据源】,在数据源这里添加一个指向a1.mdb文件的数据源。 * 比如创建名字为dataS1
错误2:在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配
我的office是2010 32位的,驱动程序也是32位的,jdk是64位的。卸载32位office,费了好大劲。。重装64位office,以及数据库驱动。
Office2010卸载过程很艰辛,网上有手动卸载过程,建议不要选择,效率低比较复杂。建议选用Microsoft自带卸载工具,另外注意自己的系统是win7/8/10,第一次用的卸载工具win8以前好使,win8不好使,又手动卸载很蛋疼。后来直接Microsoft自带工具卸载解决问题。
安装office2010时出现错误 1402。安装程序无法打开注册表项 UNKNOWN\Components\“随机数字”针对这个问题网上有很多教程,
总结一下就是 :
如果是Unknown的情况,对注册表项中UserData文件夹进行权限设置,在“高级”中将所有者设置成为当前用户,并勾选“完全控制”“读取”“特殊权限”,另外可继承要勾选上。
不是unknown的情况,百度上有很多解决方案,大致类似,是对指定的文件夹进行权限设置。
代码:
public class ConnectAccess {
/**
* 初学者请注意:
* 1:先建立一个access文件a1.mdb,并放在D:/下;
* 2:在<a href="http://lib.csdn.net/base/14" class='replace_word' title="MySQL知识库" target='_blank' style='color:#df3434; font-weight:bold;'>数据库</a>文件a1.mdb中建立一个表Table1;
* 3:为Table1添加一列,并插入至少一条记录;
* 4:本文是一个完整的类,直接拿去运行就可以。
*/
public static void main(String args[]) throws Exception {
ConnectAccess ca=new ConnectAccess();
ca.ConnectAccessFile();
ca.ConnectAccessDataSource();
}
public void ConnectAccessFile() throws Exception
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
/**
* 直接连接access文件。
*/
String dbur1 = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=d://a1.mdb";
Connection conn = DriverManager.getConnection(dbur1, "username", "password");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from Table1");
while (rs.next()) {
System.out.println(rs.getString(1));
}
rs.close();
stmt.close();
conn.close();
}
public void ConnectAccessDataSource()throws Exception {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
/**
* 采用ODBC连接方式 如何建立ODBC连接?
* 答:在windows下,【开始】->【控制面板】->【性能和维护】->【管理工具】->【数据源】,在数据源这里添加一个指向a1.mdb文件的数据源。
* 比如创建名字为dataS1
*/
String dbur1 = "jdbc:odbc:dataS1";// 此为ODBC连接方式
Connection conn = DriverManager.getConnection(dbur1, "username", "password");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from Table1");
while (rs.next()) {
System.out.println(rs.getString(1));
}
rs.close();
stmt.close();
conn.close();
}
}
代码转载自:http://blog.csdn.net/narsh/article/details/5295727
目前可以继续关注的点:
1、ResultSet结果集的使用方式。
2、数据库链接的不同方式和原理。