Java处理Access问题杂症
2011-12-22 16:17
176 查看
java处理access原来想想应该很是简单;可实际操作中真真切切地碰到了问题:
1、通过数据源连接的方式一律不考虑,所以必然就需要涉及到jar包了;
2、理所当然的优先选择了jdbc,google百度一大把,连接没问题,可是我需要读取元数据即获取表名之类的信息,在下面这段获取表名结果集的代码中抛出异常:[Microsoft][ODBC Microsoft Access Driver]可选的功能未实现,估计就是jar包的问题了。。
3、碰到这种情况就有点束手无策了,google了半天出现相同异常的一大堆,却没有能解决的。果断换jar包了,搜到各Access_JDBC30.jar,写好测试代码运行很是好用!正式导入一测,原本mdb里有3W+的数据,每次都只读了1000条。再次google,没错,这个包是要收费的,不仅仅限制条数,还限制使用次数。
4、还是google,这次换英文了。首页结果中就有个stackoverflow的,提到个jackcess的开源包,这次先看了下评论。。搞定!
其中调用Database的getTableNames(),就可以获得表名集合了。
总结:碰到问题问Google,搜到结果先看评论,不要自己浪费时间再走一边别人失败过的路,搜索不到换英文啃啃,There will be a way!
1、通过数据源连接的方式一律不考虑,所以必然就需要涉及到jar包了;
2、理所当然的优先选择了jdbc,google百度一大把,连接没问题,可是我需要读取元数据即获取表名之类的信息,在下面这段获取表名结果集的代码中抛出异常:[Microsoft][ODBC Microsoft Access Driver]可选的功能未实现,估计就是jar包的问题了。。
DriverManager.registerDriver(new com.hxtt.sql.access.AccessDriver()); con = DriverManager.getConnection(url); DatabaseMetaData dmd = con.getMetaData(); ResultSet trs = dmd.getTables(null, "%", "%", null); -- 异常抛出
3、碰到这种情况就有点束手无策了,google了半天出现相同异常的一大堆,却没有能解决的。果断换jar包了,搜到各Access_JDBC30.jar,写好测试代码运行很是好用!正式导入一测,原本mdb里有3W+的数据,每次都只读了1000条。再次google,没错,这个包是要收费的,不仅仅限制条数,还限制使用次数。
4、还是google,这次换英文了。首页结果中就有个stackoverflow的,提到个jackcess的开源包,这次先看了下评论。。搞定!
Table table = Database.open(new File(filepath)).getTable("结果"); StringBuffer sb = new StringBuffer(); int cnt = 0, suc = 0, fail = 0; for(Map<String, Object> row : table) { if(cnt%50==0 && cnt!=0){ staServer.executeUpdate(sb.toString()); System.out.println("["+DateTools.formatDate(new Date(), "yyyy-MM-dd HH:mm:ss")+"]插入50条记录..."); sb = new StringBuffer(); suc += 50; } Date t1 = (Date)row.get("time1"); sb.append("insert into test_jdbc values('"+row.get("colName")+"');"); cnt++; }
其中调用Database的getTableNames(),就可以获得表名集合了。
总结:碰到问题问Google,搜到结果先看评论,不要自己浪费时间再走一边别人失败过的路,搜索不到换英文啃啃,There will be a way!
相关文章推荐
- java 输入流异常处理并重新输入,无限循环抛异常问题处理
- (转)Java实现Web Service过程中处理SOAP Header的问题
- 内存分析方法和JVM的java heap space问题处理
- JNA的一个小问题-调用dll处理字符串,在java中不能反映出字符串变化
- 关于处理JavaWeb中Servlet中返回jsp乱码问题
- [mysql]重装windows后恢复mysql及"Access denied for user'root'@'IP'"问题的处理
- java中获取路径中的空格处理(%20)问题
- 在Web应用中,会用到大量的Ajax请求,在Ajax请求中存在的一个问题就是如何判断session超时,在网上找到的一个java中处理此问题方法:
- java多线程:锁对象Lock-同步问题更完美的处理方式
- Java多线程问题及处理
- Java - 异常处理的六个问题
- 问题集录--Java异常处理
- 如何处理java相关网络协议占内存的问题啊?为何时间越长,内存占用越大?
- .AccessControlException: Access denied (java.util.logging.LoggingPermission control)问题的解决
- java字符串类型的日期处理问题
- 如何处理Java中的高并发问题
- 三层登陆问题——未处理AccessViolationException,试图读取或写入受保护的内存。这是通常指示其他内存已损坏。
- 如何处理java高并发问题---之页面静态化
- java安装1.8的经验和Error: Registry key 'Software\JavaSoft\Java Runtime Environment'\CurrentVers问题处理
- EXCEPTION_ACCESS_VIOLATION (0xc0000005) Java Jin Dll 问题解决思路