mac电脑中javaweb不用odbc来连接access 数据库

因为本人要在mac电脑上开发javaweb项目,而且规定要连接access数据库。经过研究发现基本都是jdbc:odbc的方法,不管是设置数据源也好直连也好(参照之前我转载的文章)都是需要用到了sun.jdbc.odbc.JdbcOdbcDriver 这个驱动程序,主要是在jdk的jre下的lib下的rt.jar下。让人不爽的就是在windows中这个程序只是支持到了jdk1.7(本人用的1.7ok其他的没用过)也就是说jdk1.8就没了(1.8本人查看的确没有),解释

甲骨文公司主要技术人员、JDBC规范领导者Lance Andersen今天在博客中称,从Java SE 8起,JDK中将不再包含JDBC-ODBC桥。
JDBC-ODBC桥提供了对JDBC 2.0的有限支持,不支持较新版本的JDBC规范。JDBC-ODBC桥被认为是一个过渡的、不建议使用的产品,仅包含在JDK中,JRE中并未内置。

更让人头疼的就是我在win上用的eclipse是最新的neon4.6.0   虽然他可以用jdk1.7但是启动的时候必须要jdk1.8才能启动,也就是说你每次启动的时候必须要切换环境变量。从jdk1.7切换成jdk1.8 启动完eclipse后还要切回去。 这里有两个概念,大家不要混淆了,一个是启动eclipse他会去查环境变量,但是运行eclipse可以在eclipse导入jre1.7

那为何我还要切换环境变量呢?主要还有tomcat大家别忘记了。tomcat启动需要环境变量,如果你用1.8 tomcat7就启动不起来 必须要tomcat8或者9。

总而言之windows上面还可以解决这个jdk的问题就是能用jdbc:odbc的方式去连接access数据库。

但是换做mac 就傻逼了 我电脑是EI 10.11.6  

因为你会发现mac下的jdk,1.6,1.7,1.8都没有那个驱动,虽然1.7有rt.jar 但是里面没有odbc的代码。原因大概是jdbc:odbc的代码是c的不支持跨平台,现在实用access数据库的人也少估计就没人开发mac版本的了。

欲哭无泪。

只能另辟蹊径了。

那就是用传说中的  HXTT Access is the only type 4 JDBC(1.2, 2.0, 3.0, 4.0, 4.1, 4.2) driver  网址 http://www.hxtt.com/products.html

也可以去http://download.csdn.net/detail/topbasemaster/4115406 这里下 不过需要2积分,土豪随意。官网有免费的不过貌似连接次数有限,土豪可以花钱买正版的。

也就是说换个驱动。ACCESS_JDBC30.jar  下载完毕倒入你的工程中即可。


下面是调用代码

  try {
                String path = new DBUtil().getClass().getResource("/").getPath().replaceAll("%20"," ");

                path = path.substring(1,path.length());
                System.out.println("path:"+path);
                Class.forName("com.hxtt.sql.access.AccessDriver");
                String url = "jdbc:Access:Users/bh/Work/vmware.mdb";

               //或者 String url = "jdbc:Access:"+path+"vmware.mdb";
                conn = DriverManager.getConnection(url);
                
            } catch (Exception e) {
                e.printStackTrace();
            }

不过最后留点小遗憾,虽然数据可以取出来了但是貌似这个玩意不给力每次执行查询不能超过50次。这个就看大家如何取舍如何优化了。

希望能帮到和我一样对这个问题迷茫的孩纸。

path:Users/bh/Work/tool/workspace/web_vmware/WebRoot/WEB-INF/classes/

java.sql.SQLException: HXTT Access Version 3.0 For Evaluation Purpose allows executing not more than 50 queries once. You can order it from http://www.hxtt.com .
    at com.hxtt.global.SQLState.SQLException(Unknown Source)
    at com.hxtt.global.SQLState.limitedFunction(Unknown Source)
    at com.hxtt.sql.bm.a(Unknown Source)
    at com.hxtt.sql.ag.a(Unknown Source)
    at com.hxtt.sql.dg.executeQuery(Unknown Source)
    at dao.impl.UserDAOImpl.findById(UserDAOImpl.java:19)

    at util.DBUtil.main(DBUtil.java:117)

以上的话需要注意,项目如果在tomcat跑的话需要注意看倒入webapps中的WebRoot中lib下是否包含了ACCESS_JDBC30.jar 如果每包含就导入进去。

否则就会报下述错误

信息: Server startup in 1527 ms
start:
path:Users/bh/Work/tomcat/apache-tomcat-7.0.70/webapps/WebRoot/WEB-INF/classes/
java.lang.ClassNotFoundException: com.hxtt.sql.access.AccessDriver
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1891) 


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云浩舟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值