WTF, MS JDBC Driver for SQL Server 2008
2016-07-29 00:00
363 查看
WTF = What Fuck ...
今天被SQL Server 2008整的胸闷!
现场连接数据库 ok
SQLDeveloper工具链接数据库 ok
eclipse 中跑项目链接数据库, 卡住, 转菊花。
错误现象:
由于现场没有问题,所以没有考虑数据库驱动的问题。
列了个checklist, 依次检查环境:
SQL Sever 2008 主机是否能ping同
telnet 1433 接口是否ok
主机 SQL Browser 是否开启
Client链接是否采用网络协议
TCP/IP 是否开启, 且端口是否是1433
检查一番后,都ok.
无奈!
写个Unit Test 看看:
依然卡住。
到这里, 开始怀疑是驱动的问题。
SQL Developer工具用的是: jtds.jar, 连接2008没问题
项目驱动是: sqljdbc.jar, 连接2008卡住
驱动换成 jtds.jar 再试:
跑通!
再将项目中的配置换成 jtds 的方式, “转菊花”的问题解决!
P.S:
为什么现场采用 sqljdbc.jar 链 2008没问题! WTF MS !
今天被SQL Server 2008整的胸闷!
现场连接数据库 ok
SQLDeveloper工具链接数据库 ok
eclipse 中跑项目链接数据库, 卡住, 转菊花。
错误现象:
Initializing connection provider: org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider
由于现场没有问题,所以没有考虑数据库驱动的问题。
列了个checklist, 依次检查环境:
SQL Sever 2008 主机是否能ping同
telnet 1433 接口是否ok
主机 SQL Browser 是否开启
Client链接是否采用网络协议
TCP/IP 是否开启, 且端口是否是1433
检查一番后,都ok.
无奈!
写个Unit Test 看看:
package db; import static org.junit.Assert.*; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import org.junit.*; public class DBConnTest { final String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; final String user = "sa"; final String password = "1"; Connection conn = null; public @Before void init() { conn = null; } public @After void close() { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } public @Test void connect_uv() { System.out.println("connect userverify..."); String url = "jdbc:sqlserver://192.168.1.19:1433;DatabaseName=dyuserverify20_rugao"; try { Class.forName(driver); conn = DriverManager.getConnection(url, user, password); assertNotNull(conn); } catch (ClassNotFoundException e) { fail(e.getMessage()); } catch (SQLException e) { fail(e.getMessage()); } } }
依然卡住。
到这里, 开始怀疑是驱动的问题。
SQL Developer工具用的是: jtds.jar, 连接2008没问题
项目驱动是: sqljdbc.jar, 连接2008卡住
驱动换成 jtds.jar 再试:
package db; import static org.junit.Assert.*; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import org.junit.*; public class DBConnTest { final String driver = "net.sourceforge.jtds.jdbc.Driver"; final String user = "sa"; final String password = "1"; Connection conn = null; public @Before void init() { conn = null; } public @After void close() { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } public @Test void connect_uv() { System.out.println("connect userverify..."); String url = "jdbc:jtds:sqlserver://192.168.1.19:1433/dyuserverify20_rugao"; try { Class.forName(driver); conn = DriverManager.getConnection(url, user, password); assertNotNull(conn); } catch (ClassNotFoundException e) { fail(e.getMessage()); } catch (SQLException e) { fail(e.getMessage()); } } }
跑通!
再将项目中的配置换成 jtds 的方式, “转菊花”的问题解决!
P.S:
为什么现场采用 sqljdbc.jar 链 2008没问题! WTF MS !
相关文章推荐
- jdbc中的Statement和PreparedStatement接口对象
- SQL中的三值逻辑
- SQL Server 作业批量停止
- 结束SQL阻塞的进程
- 动态生成SQL Server视图作业
- Seafile Server本地权限提升漏洞(CVE-2014-5443)
- 从USB安装Ubuntu Server 10.04.3 图文详解
- SQL Server 语句操纵数据库
- SQL(结构化查询语句)
- oracle sql日期比较
- 使用zabbix监控Nginx活动状态--Part1
- 高效访问Internet-启用ISA Server的缓存
- 虚拟化基础架构Windows 2008篇之1-虚拟化基础服务概述
- linux快速部署mysql服务器
- windows server域用户提升到本地更高权限组中的方法
- 2008年新年贺词(中英对照)
- 2008元旦祝福短信大全上部第1/3页
- 2008元旦短信 2008元旦祝福短信集合不段更新