`

JDBC连接SQL server 2005 驱动

阅读更多

   昨天下了一个驱动Microsoft SQL Server JDBC Driver 3.0即sqljdbc_3.0把的sqljdbc4.jar拷贝到lib下,下附件第二为sqljdbc_3.0,在applicationContext.xml里配置C3P0数据源的连接池

 

<beans>
 <!-- 定义数据源Bean,使用C3P0数据源实现 -->
 <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
  <!-- 指定连接数据库的驱动 -->
  <property name="driverClass" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
  <!-- 指定连接数据库的URL -->
  <property name="jdbcUrl" value="jdbc:sqlserver://192.168.1.132:1433;DatabaseName=ZBHotelDB"/>
  <!-- 指定连接数据库的用户名 -->
  <property name="user" value="YXCK"/>
  <!-- 指定连接数据库的密码 -->
  <property name="password" value="123456"/>
  <!-- 指定连接数据库连接池的最大连接数 -->
  <property name="maxPoolSize" value="40"/>
  <!-- 指定连接数据库连接池的最小连接数 -->
  <property name="minPoolSize" value="1"/>
  <!-- 指定连接数据库连接池的初始化连接数 -->
  <property name="initialPoolSize" value="1"/>
  <!-- 指定连接数据库连接池的连接的最大空闲时间 -->
  <property name="maxIdleTime" value="20"/>
 </bean>

先是出现TCP/IP连接失败,原因我把IP地址写错了。改正后出现下面的错

com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“RSA premaster secret error”。
 at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:1352)
 at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1533)
 at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1042)
 at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:817)
 at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:700)
 at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:842)
 at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:88)
 at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:109)
 at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1.acquireResource(C3P0PooledConnectionPool.java:89)
 at com.mchange.v2.resourcepool.BasicResourcePool.acquireUntil(BasicResourcePool.java:665)
 at com.mchange.v2.resourcepool.BasicResourcePool.access$500(BasicResourcePool.java:32)
 at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1206)
 at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:368)
Caused by: javax.net.ssl.SSLKeyException: RSA premaster secret error
 at com.sun.net.ssl.internal.ssl.RSAClientKeyExchange.<init>(RSAClientKeyExchange.java:97)
 at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverHelloDone(ClientHandshaker.java:634)
 at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:226)
 at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:516)
 at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:454)
 at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:884)
 at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1096)
 at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1123)
 at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1107)
 at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1483)
 ... 11 more
Caused by: java.security.NoSuchAlgorithmException: SunTlsRsaPremasterSecret KeyGenerator not available
 at javax.crypto.KeyGenerator.<init>(DashoA13*..)
 at javax.crypto.KeyGenerator.getInstance(DashoA13*..)
 at com.sun.net.ssl.internal.ssl.JsseJce.getKeyGenerator(JsseJce.java:223)
 at com.sun.net.ssl.internal.ssl.RSAClientKeyExchange.<init>(RSAClientKeyExchange.java:89)
 ... 20 more

花了我一上午的时间才搜到是驱动错了,应该用驱动Microsoft SQL Server 2005 JDBC Driver,http://download.microsoft.com/download/1/c/a/1cae7cc0-c010-4e0c-b1b8-7915360ee0b9/sqljdbc_1.0.809.102_chs.exe 顺便发个地址,下面附件1即是Microsoft SQL Server 2005 JDBC Driver,第三个附件为c3p0-0.9.0.4.jar

分享到:
评论
1 楼 存在即为合理 2012-05-30  
写得好乱,但是还是谢谢你的驱动

相关推荐

Global site tag (gtag.js) - Google Analytics