这两天因为项目更新,用的数据库还是sqlserver2000 MS系列的三个纯驱动包....一更新便出了很多错误..如:org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit.。。。
公网服务器环境本来就复杂...包也多,有sql2005的驱动包,又有sql2000的驱动包...我本地开发的用的是2005的配置,但公网是2000所以,一更新上去就报错...实在没办法了,最后只能想到更换驱动来解决,最后在网上找到了解决方案,那就是用jtds驱动来解决。
“JTDS是一个开放源代码的100%纯Java的,用于JDBC 3.0驱动Microsoft SQL Server (6.5 ,7 ,2000和2005版本)和Sybase(10 ,11 ,12 ,15 版本)的驱动程序 。 JTDS是基于freetds的,并且是目前最快的生产准备JDBC驱动程序为SQL Server和Sybase 。 JTDS完全与JDBC 3.0兼容,支持只向前的,和可滚动/可更新的结果集(ResultSets)中并行(完全独立)语句,并且可实施所有databasemetadata和resultsetmetadata方法。”(来自网络)
操作方法:只要把jtds的最新的包(或者就jtds-1.2.2.jar也行)下载下来,放lib目录下,然后修改配置文件,如下:
数据库URL(jdbcUrl):jdbc:jtds:sqlserver://localhost:1433;DatabaseName=PUB
驱动类(driverClass):net.sourceforge.jtds.jdbc.Driver
就这样配置一下,问题就解决了...
刚接触jtds驱动,还没能深入的了解,不过问题倒是解决了,希望能帮助其他人...