Hibernate3连接SQL SERVER 2000报驱动错误解决办法

摘要

以前都是使用oracle或者mysql数据库,采用jdbc连接去整合Hibernate3,今天在项目使用sql server2000数据库,同样也采用jdbc去连接数据库整合Hibernate3,却出

以前都是使用oracle或者mysql数据库,采用jdbc连接去整合Hibernate3,今天在项目使用sql server2000数据库,同样也采用jdbc去连接数据库整合Hibernate3,却出现如下错误:


java.lang.AbstractMethodError:com.microsoft.jdbc.base.BaseDatabaseMetaData.supportsGetGeneratedKeys()Z

或者

java.lang.AbstractMethodError: com.microsoft.jdbc.base.BaseDatabaseMetaData.getJDBCMajorVersion()I

经过翻阅各种资料,才发现这本身就是microsoft提供的SqlServer数据库驱动存在bug,改bug是整合hibernate才会出现的,使用java的jdbc直接连接是没有问题的。


查看了以前项目才发现,可以使用另外一种方式去连接数据库,也就是jtds驱动连接,好像这也是唯一一种解决方式,目前还没有发现其他的解决方法,去网上下载jtds-1.2.jar,放入到项目的lib包中。连接方式做如下修改:

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="net.sourceforge.jtds.jdbc.Driver"></property>
    <property name="url" value="jdbc:jtds:sqlserver://localhost:1433/Material"></property>
    <property name="username" value="sa"></property>
    <property name="password" value="123"></property>
    <!-- 事务自动提交 -->
    <property name="defaultAutoCommit" value="true"></property>
</bean>


经过测试上面的连接方式是没有问题的。

jtds-1.2.2.zip

附件是驱动,下载后把zip改为jar后缀。。

IT家园
IT家园

网友最新评论 (0)