自己封装的java读取Access数据库文件的工具类,样例数据查看器等在附件中
package show; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import java.util.Properties; /** * 操作Access数据库文件的工具类 * @author zhLin *@Date 2017-3-29 */ public class ReadAccessUtils { /**驱动名称**/ public static final String accessDriverName = "sun.jdbc.odbc.JdbcOdbcDriver"; /**Access数据库连接前缀**/ public static final String url_prefix = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ="; /**用户名字段**/ public static final String cons_user = "user"; /**密码字段**/ public static final String cons_password = "password"; /**获取到表Access数据库文件中所有表名**/ public static List<String> getAccessTablesName(String fileFullPath){ List<String> nameList = new ArrayList<String>(); Connection conn =getAccessConnection(fileFullPath); DatabaseMetaData meta; try { meta = conn.getMetaData(); ResultSet rs = meta.getTables(null, null, null,new String[] { "TABLE" }); while (rs.next()) { nameList.add(rs.getString(3)); } rs.close();//关闭结果集 } catch (SQLException e) { e.printStackTrace(); }finally{ try { conn.close();//关闭连接 } catch (SQLException e) { e.printStackTrace(); } } return nameList; } /**得到查询表的列信息**/ public static List<String> getAccessColumnsName(String fileFullPath,String tableName){ List<String > colNameList = new ArrayList<String>(); Connection conn = getAccessConnection(fileFullPath); String sql = "select * from "+tableName; ResultSet rs=null; try { Statement stmt = conn.createStatement(); rs = stmt.executeQuery(sql);//执行查询 ResultSetMetaData data=rs.getMetaData();//获取到列信息 int cnt = data.getColumnCount();//获取到列总数 for(int i =1;i<=cnt;i++){//遍历列,从1开始 colNameList.add(data.getColumnName(i)); } rs.close(); } catch (SQLException e) { e.printStackTrace(); }finally{ try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } return colNameList; } /** * 返回数据列表 * 第一行为列名,后面为值 * **/ public static List<List<String>> getAccessDataLists(String fileFullPath,String tableName){ List<List<String>> dataLists = new ArrayList<List<String>>();//返回结果集 List<String > colList = new ArrayList<String>();//列名集合 Connection conn = getAccessConnection(fileFullPath);//数据库连接 String sql = "select * from "+tableName; ResultSet rs=null; try { Statement stmt = conn.createStatement(); rs = stmt.executeQuery(sql);//执行查询 ResultSetMetaData data=rs.getMetaData();//获取到列信息 int cnt = data.getColumnCount();//获取到列总数 for(int i =1;i<=cnt;i++){//遍历列,从1开始 colList.add(data.getColumnName(i)); } //第一行插入列名 dataLists.add(colList); while(rs.next()) {//遍历结果集 colList = null; colList = new ArrayList<String>(); for(int i =1;i<=cnt;i++)//遍历列,从1开始 colList.add(rs.getString(i)); //插入数据列 dataLists.add(colList); } rs.close(); } catch (SQLException e) { e.printStackTrace(); }finally{ try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } return dataLists; } /**依据Access数据库文件路径,获取到数据库连接**/ public static Connection getAccessConnection(String fullFilePath){ String url=url_prefix+fullFilePath; //文件地址 Connection conn = null; Properties prop = new Properties(); prop.put("charSet", "gb2312"); //这里是解决中文乱码 prop.put(cons_user, ""); prop.put(cons_password, ""); try { conn = DriverManager.getConnection(url,prop); } catch (SQLException e) { e.printStackTrace(); } return conn; } public static void main(String[] args) { String filePath = "D:\\Develop_tool\\Test\\Northwind.mdb"; List< List<String>> dataList = getAccessDataLists(filePath,"雇员"); for (List<String> list:dataList){ for(String value:list){ System.out.print("\t"+value); } System.out.println(); } } }
相关推荐
总的来说,通过正确配置和使用`ucanaccess`和`hsqldb`的JAR文件,Java开发者可以轻松地与Access数据库进行交互,执行查询、插入、更新和删除等操作,从而实现数据的管理和处理。不过,考虑到性能和扩展性,对于大型...
本文将详细介绍如何使用Java来连接Microsoft Access数据库,并进行基本的数据操作。通过本文的学习,你将能够掌握Java连接Access数据库的基本步骤和技术要点。 #### 二、JDBC简介 JDBC(Java Database ...
### Java工具类:Java连接各个数据库方法 在Java开发中,连接不同的数据库是常见的需求之一。本文将详细介绍如何通过Java工具类实现与多种数据库的连接,包括Oracle、DB2、SQL Server、Sybase、Informix、MySQL、...
而Apache Commons Lang是Java实用工具类的集合,提供了各种字符串处理、日期时间处理等通用功能,增强了Java的标准库。 使用Jackcess进行数据库操作的基本步骤如下: 1. 添加依赖:将jackcess-1.2.9.jar,Apache ...
总之,通过理解JDBC的工作原理,使用适当的驱动(如`UCanAccess`),并编写正确的Java代码,就能在Windows环境下成功地连接和操作Access数据库。这个过程中涉及到的编程技巧和数据库知识对于任何Java开发者来说都是...
`MdbUtils.java`文件很可能是这个工具类的实现代码,包括上述提到的各种功能。通过阅读和理解这个文件,你可以了解到如何在Java中操作Access MDB文件,包括如何构建SQL查询,处理结果集,以及管理数据库连接。对于...
这个JAR文件包含了驱动程序的类和其他必要的资源,使得Java程序能够识别并操作Access数据库。 描述中的“亲测可用,不限次数”意味着这个驱动已经经过了实际测试,证明它可以成功地与Access数据库建立连接,并且...
总的来说,Jackcess为Java开发者提供了一个强大且灵活的工具,使他们能够在各种操作系统上(包括Windows和Linux)直接处理Access数据库,无需依赖其他平台特定的软件。利用这个库,你可以构建出跨平台的数据处理应用...
数据库同步工具:基于Java开发,包含22个文件,包括9个Java类文件、2个Markdown文档、2个JAR包文件、2个XML配置文件、2个Properties配置文件、1个.gitignore文件、1个LICENSE文件、1个PNG图像文件、1个GIF图像文件、...
Java中的Jackcess库是一个强大的工具,它允许开发者在Java应用程序中直接操作Microsoft Access数据库。这个开源库提供了对.MDB和.ACCDB文件格式的全面支持,使得在Java环境中处理Access数据库变得简单而高效。以下是...
这个库使得在Java环境中无需依赖Microsoft Office组件就能读取、写入甚至修改Access数据库文件,大大增强了Java应用程序处理Access数据的能力。在本文中,我们将深入探讨Jackcess的核心功能、使用方法以及其在实际...
本话题主要关注如何使用Java语言连接到Microsoft Access数据库。Access是一种流行的轻量级数据库管理系统,适用于小型项目和个人使用。以下将详细介绍Java连接Access数据库的过程,以及提供的示例代码解析。 1. **...
DBUtil.java文件通常包含数据库操作的通用工具类,它封装了常见的数据库操作,如打开、关闭连接,执行SQL语句,处理结果集等。这样的设计使得代码更加简洁,可读性更强,同时也降低了出错的可能性。开发者可以借助...
Java通过JDBC(Java Database Connectivity)API与Access数据库进行交互,实现数据的增删改查操作。 在这个资料分享中,"javalearnsa160.zip"可能包含了该仓库管理系统的源代码、数据库文件、配置文件、文档等资源...
### Java连接Access数据库详解 #### 一、JDBC简介 JDBC(Java Database Connectivity)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了...
Java 访问 Access 数据库是通过 JDBC(Java Database Connectivity)技术实现的,JDBC 是 Java 平台中用于与各种数据库交互的一套标准 API。它允许 Java 应用程序执行 SQL 语句并处理结果。在 Java 中,访问 Access ...
在这个项目中,开发者通过编写Java代码和JSP页面,直接使用JDBC(Java Database Connectivity)API来与Access数据库进行通信,这包括建立连接、执行SQL语句、处理结果集等操作。 首先,Java连接Access数据库通常...
通过这个示例,开发者可以学习如何在Java中使用Jackcess库与其他依赖库来读写Access数据库,实现数据库操作。这涵盖了文件I/O、数据库连接、SQL查询、事务处理等多个Java编程和数据库操作的基础知识。同时,了解这些...