1、新建数据库:
在Access中新建数据库reckon.accdb(我本地的Access是2007的,2003的拓展名为mdb),存放在D盘Access目录下。
2、安装Access驱动程序:
从“开始——>控制面板——>系统和安全——>管理工具——>数据源(ODBC)——>系统驱动”中查看是否安装Access的ODBC驱动程序。若不存在则需要安装Microsoft Access驱动程序。
官方:http://www.microsoft.com/zh-cn/download/confirmation.aspx?id=13255
32位:http://download.microsoft.com/download/E/4/2/E4220252-5FAE-4F0A-B1B9-0B48B5FBCCF9/AccessDatabaseEngine.exe
64位:http://download.microsoft.com/download/E/4/2/E4220252-5FAE-4F0A-B1B9-0B48B5FBCCF9/AccessDatabaseEngine_X64.exe
有时候系统中明明安装了Access驱动程序,但是依旧显示未安装,就像我本地一样:
我已经安装了Access,但是这里显示的只有SQL Server的两个驱动。原因我不知道,我只知道怎么可以看到完全的。打开“C:\Windows\SysWOW64”文件夹,找到odbcad32.exe执行程序,“以管理员身份运行”,然后就会看到一大堆驱动程序,Access驱动程序也在里边:
(注意:在从文件夹打开之前,记得关闭以前的ODBC数据源管理器,否则显示的还是以前那个)。
3、配置ODBC数据源:
第一步,在“ODBC数据源管理器”中切到“系统DSN”选项卡,点击右侧的“添加”按钮,在弹出的“创建新数据源”框中选择“Microsoft Access Driver(*.mdb,*.accdb)”,这个驱动可以兼容mdb和accdb文件,所以选这个,选完了点击“完成”。
第二步,在“ODBC Microsoft Access 安装”对话框中设置数据源名称并选择数据库。
数据源名称:随便填,但是最后有意义,我这里是reckon
说明:可以不填
数据库:点击“选择”按钮,在弹出框中,定位到D盘Access目录,此时左侧会显示选定目录下的Access数据库文件,如如。选定reckon.accdb数据库,点击确定。
第三步,返回到“系统DSN”选项卡,“系统数据源”里多出了我刚刚添加的reckon数据源。
4、使用Java代码链接Access数据库:
package com.wjl.test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.Properties; public class DBConnection { static Connection connect = null; static PreparedStatement stmt = null; static ResultSet rs = null; /** * 该方法用来连接数据库 * @param db:数据源名称 * */ private DBConnection(String db){ try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//注册驱动 //Access中的数据库默认编码为GBK,本地项目为UTF-8,若不转码会出现乱码 Properties p = new Properties(); p.put("charSet", "GBK"); connect = DriverManager.getConnection("jdbc:odbc:"+db,p); }catch(Exception e){ e.printStackTrace(); } } /** * 该方法用来执行SQL并返回结果集 * */ public static ResultSet selectQuery(String db,String sql){ try{ stmt = getConnect(db).prepareStatement(sql); rs = stmt.executeQuery();//执行SQL }catch(Exception e){ e.printStackTrace(); } return rs; } public static Connection getConnect(String db){ DBConnection conn = new DBConnection(db); return connect; } /** * 该方法用来关闭连接 * */ public static void closeConn() { try { rs.close(); stmt.close(); connect.close(); } catch (Exception e) { e.printStackTrace(); } } /** * 测试 * */ public static void main(String[] args){ try{ DBConnection connnect = new DBConnection("reckon"); if(connect!=null){ System.out.println(connect+"\n连接成功"); }else{ System.out.println("连接失败"); } rs= selectQuery("reckon","select * from table1"); if(rs!=null){ while(rs.next()){ System.out.println(rs.getString(1)+"\t"+rs.getString(2)); } } }catch(Exception e){ e.printStackTrace(); }finally{ closeConn();//关闭链接 } } }
5、遇到的问题:
a、中文乱码问题。Access数据库默认以GBK编码,系统中的项目一般以UTF-8编码,因此容易出现乱码,所以在上面的代码中添加了编码处理,也就是:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//注册驱动 Properties p = new Properties(); p.put("charSet", "GBK"); connect = DriverManager.getConnection("jdbc:odbc:"+db,p);
b、classNotFound:sun.jdbc.odbc.JdbcOdbcDriver。这个驱动可以找相应的jar包也可以用JDK里面集成的。我这里就是用的集成的。在jdk1.6中有这个驱动,但是1.8却没有这个,因此要是使用1.8的jre环境就需要手动导入rt.jar,这样子就不会报这个异常啦。
c、java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
这个错误看起来是说数据源没有配置,但是我的数据源已经配置过了且配置正确的情况下一运行还是报这个错,不知道问题何在。后来换成1.6的jre就能执行成功,换成1.8的就接着这个错,可能是jre环境的问题吧。我本地有两个jre,1.6是32位的,1.8是64位的,MyEclipse是64位的,Access数据库是32位的。估计跟这些个环境有间接关系吧。
相关推荐
在Java编程环境中,连接Microsoft Access数据库通常通过JDBC(Java Database Connectivity)实现,而Access数据库与Java之间的桥梁是ODBC(Open Database Connectivity)。ODBC是一个标准的API,允许应用程序通过...
Java写了一个连接Access数据库的桌面程序,百度很长时间发现jdk1.8没有rt.jar,没法通过第一种方式jdbc:odbc方式连接access数据库,可以通过第四种方式驱动直连access。 实现步骤①外部jar包(Access_JDBC30.jar)导入...
java连接Access数据库操做数据库驱动 连接方法: public static Connection getNativeConnection(){ try { if(nativeConnection!=null && !nativeConnection.isClosed()){ return ...
1. **加载JDBC-ODBC桥接器**:为了使Java能够通过ODBC连接到Access数据库,我们需要加载JDBC-ODBC桥接器。这可以通过`Class.forName()`方法实现。 ```java try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")...
在JSP中,通过ODBC(Open Database Connectivity)连接Access数据库,可以实现网页与数据库之间的交互,如数据查询、添加、更新和删除等操作。下面将详细介绍这个主题,并提供一个示例。 首先,我们需要确保在...
第一种方式是通过 JDBC-ODBC 方式桥连直接连接,第二种方式是通过数据库所在的绝对路径方式连接 第三种方式是通过请求来获取数据库的绝对路径方式连接。 在 Java Web 项目中,我们可以将 mdb 文件放入到 WebRoot 下...
本主题聚焦于在LINUX平台上使用Java直接连接到Access数据库中的DBF文件。DBF文件是FoxPro、dBase等数据库系统常用的表格文件格式,虽然它不是Oracle或MySQL这样的主流数据库格式,但在某些特定场景下,仍然有其应用...
最后,在 A 服务器中编写测试程序,使用 java 语言连接到 RmiJdbc 服务,并访问 access 数据库。在编写测试程序时,需要引入 RmiJdbc 驱动程序,并使用 jdbc:rmi://[:port]>/<jdbc-url> 链接字符串连接到 RmiJdbc ...
在Java编程中,连接Microsoft Access数据库(通常以.mdb或.accdb文件格式存在)需要特定的库支持。这些库以Java Archive (JAR) 文件的形式提供,允许Java应用程序通过Java Database Connectivity (JDBC) API与Access...
ODBC(Open Database Connectivity)是一种标准接口,用于连接各种类型的数据库,而 JDBC(Java Database Connectivity)是 Java 语言中用于连接数据库的 API。通过使用 ODBC-JDBC 桥,我们可以使用 Java 语言访问 ...
首先,为了在Java中操作Access数据库,你需要添加JDBC驱动。Access数据库的JDBC驱动通常是Microsoft提供的JDBC-ODBC桥接器,但现在推荐使用Apache的Apache POI或UCanAccess库,因为它们不需要安装额外的ODBC驱动。在...
在Java编程中,连接Microsoft Access数据库通常需要使用Java Database Connectivity(JDBC)API。JDBC是一种Java标准,它提供了一种统一的接口,使得开发者能够用Java语言与各种类型的数据库进行交互。在处理Access...
在Java编程中,连接Microsoft Access数据库是一个常见的任务,特别是在小型项目或者学习环境中。Access数据库以其易用性和灵活性受到很多开发者的青睐。本教程将通过一个简单的例子,介绍如何使用Java来连接并操作...
在Java编程中,连接到Access数据库通常通过Java Database Connectivity (JDBC) API来实现,而JDBC-ODBC桥是连接到Access的一种常见方法。在这个过程中,我们需要设置一个数据源(Data Source)来建立Java应用与...
Access 2010数据库ODBC驱动是微软提供的一个关键组件,它允许用户通过开放数据库连接(Open Database Connectivity, ODBC)接口与Access数据库进行交互。ODBC是一种标准的应用程序编程接口(API),使得应用程序能够与...
本教程将详细阐述如何使用ODBC(Open Database Connectivity)和JDBC(Java Database Connectivity)桥接的方式连接到Access数据库。ODBC是一种数据访问标准,它允许各种编程语言通过统一的接口与不同类型的数据库...
对于Access,你需要的是Microsoft的JDBC驱动,通常称为"Microsoft JDBC Driver for SQL Server",因为Access数据库可以通过JDBC-ODBC桥接器与Java进行通信。你可以从微软官方网站下载相应的驱动程序,并将其添加到...
本文将基于给定的“Java连接各种数据库方式连接各种数据库方式速查表”的标题、描述、标签和部分内容,详细阐述如何使用Java通过JDBC(Java Database Connectivity)接口连接Oracle、DB2、SQL Server、Sybase、...
总之,JDBC-ODBC连接提供了一种便捷的方式,使Java应用程序能够直接与Access数据库进行交互,而无需预先设置数据源。然而,随着技术的发展,这种做法已逐渐被更现代的JDBC驱动所取代。对于学习和快速原型设计,这种...