必威体育Betway必威体育官网
当前位置:首页 > IT技术

java解析MDB文件的方法,已经写成公用方法

时间:2019-06-11 17:43:09来源:IT技术作者:seo实验室小编阅读:52次「手机版」
 

.mdb

近期,有人和我说某些企业的数据是存储在Access库中,该文件以点mdb(.mdb)结尾,新人也许不知道Access。它是微软的办公软件存储形式,与office一样,是很早期的存储方案。

Java 为Access提供了解决方案,一种是桥接模式,即odbc形式,它不需要导任何包,因为它被封装在JDK1.7中,而如今,使用JDK1.8的较多,因为JDK6和JDK7并没有什么大改进,就像iPhone6和iPhone7,没啥变化,但愿IPhone8不会让我们大失所望,虽然我现在仍然用iPhone5S。

插播一段广告(我这电话用4年了快,16G的,居然不卡。要是安卓估计早就废了,难道这就是开源的弊端?虽然我很爱国,但也希望山寨机能加强点,别打脸啊)。

再看看JDK1.8,真可谓翻云覆雨啊!我个人对并发比较感兴趣,所以当它出来的时候,就喜欢CompleteFuture加上流式编程。扯远了,说说怎么解析Mdb吧。显然Jdk1.8取代了桥接模式。所以你解析时总会报错,告诉你没有这种类型的驱动器。那是不是就没办法了呢!不是的,这里我介绍一个jar包,Access_JDBC30.jar,这东西就和mysql驱动性质一样,只不过使用方法有所差异。

	/**
	 * @category mdb文件的解析
	 * @author PQF
	 */
	public static List<Map<String, String>> resolverMdb(String mdbPath,
			String sql, Object... column) throws Exception {
		List<Map<String, String>> entityList = new ArrayList<>();
		if (mdbPath.isEmpty() || sql.isEmpty() || column.length < 1) {
			throw new Exception("mdb文件路径不能为空或者SQL语句不能为空,并且列的长度不能小于1");
		}
		Properties prop = new Properties();
		prop.put("charSet", "UTF-8");
		String dbUr1 = "jdbc:Access:///" + mdbPath;
		Class.forName("com.hxtt.sql.access.AccessDriver").newInstance();
		try (Connection conn = DriverManager.getConnection(dbUr1, prop);
				Statement statement = conn.createStatement();
				ResultSet result = statement.executeQuery(sql)) {
			Map<String, String> mapList = null;
			while (result.next()) {
				mapList = new HashMap<>();
				for (Object col : column) {
					mapList.put((String) col, result.getString((String) col));
				}
				entityList.add(mapList);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return entityList;
	}

这里注意两点:1.String dbUr1 = "jdbc:Access:///" + mdbPath;

标红的地方(jdbc:Access:///)千万不能去掉啊!!!!

2.Class.forName("com.hxtt.sql.access.AccessDriver").newInstance();

驱动名称是固定的,别瞎改!!!后面的newInstance(),可以加,也可以不加。

此方法已让我编写的十分简单,传送一个文件路径,然后一段查询的SQL,和你要查询的列的名称即可。什么???你说你不会用???别闹了朋友,你搞笑呢???自己琢磨吧!!!

感谢读者的光顾。

相关阅读

运用Javascript实现时间重置、进行时间加减计算

近期参与的项目中涉及到时间计算的问题,就是首先获取到数据库中最新数据的日期,并根据这个时间去获取一个月前、3月前、一年前等时

手机QQ聊天记录文件解密方法学习

解密手机QQ聊天记录方法汇总 解密方法: (1)聊天记录内容明文:D (2)聊天记录内容密文:E (3)手机IMEI(MEID): IMEI (4)公式:E = D^IMEI 具体

JAVA常见错误之 expected

例1:public class line1{ int test1=666; line2 l2=new line2(); l2.ShowIt(test1); }例2:public class line1{ int test1=666; l

.bin文件如何打开并使用

BIN文件是一种二进制文件,通过虚拟光驱软件是可以打开BIN文件的,也有用户将系统备份为BIN文件,便于下次重装系统时进行读取。通过了

JavaWeb项目练习--项目生疏知识点整理

1)Trim() 从当前 String 对象移除所有前导空白字符和尾部空白字符 2)比较字符串相等使用 str1.equals(str2) 切忌使用 " == "来比

分享到:

栏目导航

推荐阅读

热门阅读