java怎么解析mdb⽂件_java解析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> resolverMdb(String mdbPath,
String sql, column) throws Exception {
List> entityList = new ArrayList<>();
java怎么编写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 = Connection(dbUr1, prop);
Statement statement = ateStatement();
ResultSet result = uteQuery(sql)) {
Map mapList = null;
while (()) {
mapList = new HashMap<>();
for (Object col : column) {
mapList.put((String) col, String((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,和你要查询的列的名称即可。什么你说你不会⽤别闹了朋友,你搞笑呢⾃⼰琢磨吧!!!
感谢读者的光顾。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论