数据库连接字符串

原创
2017/05/10 17:38
阅读数 81

最近有个项目要部署,用的是sqlserver2008 数据,于是网上copy了一段数据库连接字符串,于是问题出现了,现场传回的日志首先是;

[2017-05-10 11:59:06,801][ERROR][localhost-startStop-1][com.alibaba.druid.pool.DruidDataSource] dataSource init error
java.sql.SQLException: com.microsoft.jdbc.sqlserver.SQLServerDriver

……Caused by: java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
  at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1891) ~[catalina.jar:7.0.70]
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1734) ~[catalina.jar:7.0.70]
    at java.lang.Class.forName0(Native Method) ~[na:1.8.0_65]
    at java.lang.Class.forName(Unknown Source) ~[na:1.8.0_65]
    at com.alibaba.druid.util.JdbcUtils.createDriver(JdbcUtils.java:540) ~[druid-1.0.16.jar:1.0.16]
    ... 62 common frames omitted

 

然后仔细检查了下,项目的jar包是有sqlserver 的jdbc驱动包的,版本也对,然后再排查,发现配置文件里的是 driver-class=com.microsoft.jdbc.sqlserver.SQLServerDriver

原来com.microsoft.sqlserver.jdbc.SQLServerDriver才用来sqlserver2005,sqlserver2008 的,而com.microsoft.jdbc.sqlserver.SQLServerDriver是用来连接sqlserver2000的。

ok,这样问题就解决了。

但是,一杯茶的时间没到,现场又传回来了一个日志:

Caused by: java.sql.SQLException: connect error, url jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=test, driverClass com.microsoft.sqlserver.jdbc.SQLServerDriver
    at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1445) ~[druid-1.0.16.jar:1.0.16]
    at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:632) ~[druid-1.0.16.jar:1.0.16]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_65]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_65]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_65]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.8.0_65]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1706) ~[spring-beans-4.2.0.RELEASE.jar:4.2.0.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1645) ~[spring-beans-4.2.0.RELEASE.jar:4.2.0.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574) ~[spring-beans-4.2.0.RELEASE.jar:4.2.0.RELEASE]
    ... 54 common frames omitted

问题就出在url和driverclass上,而driverclass刚才已经排除,仔细一想,排除端口错误的情况下,应该还是url字符串的错误,经修改,正确的url字符串为:jdbc:sqlserver://127.0.0.1:1433;DatabaseName=test

 

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部