Sybase迁移至MSSQL后,原Sybase驱动语句对应的MSSQL驱动调用是什么?
替换Sybase JDBC驱动为SQL Server的正确写法
嘿,这个迁移场景我刚好碰过,给你说清楚怎么改:
你原来的Sybase驱动加载语句是:
Class.forName("com.sybase.jdbc3.jdbc.SybDriver");
对应的SQL Server JDBC驱动加载语句直接替换成:
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
不过有个实用小提醒:从JDBC 4.0(也就是JDK 1.6及以上版本)开始,JDBC驱动会自动通过META-INF/services/java.sql.Driver文件完成注册,所以其实你完全可以删掉这行Class.forName()的代码,只要你的项目里已经正确引入了SQL Server的JDBC驱动依赖就行——省得后续还要维护这行冗余代码。
另外补充两个注意点:
- 这个类名适配所有主流的SQL Server JDBC驱动版本(比如mssql-jdbc 7.x到最新的12.x),支持SQL Server 2012到2022的全系列版本
- 记得把项目里的Sybase驱动依赖替换成SQL Server的JDBC驱动(比如Maven依赖里用
com.microsoft.sqlserver:mssql-jdbc)
如果需要参考完整的连接代码,这里给个示例:
String sqlServerConnUrl = "jdbc:sqlserver://your-db-server:1433;databaseName=your-target-db;user=db-username;password=db-password;"; Connection conn = DriverManager.getConnection(sqlServerConnUrl);
内容的提问来源于stack exchange,提问作者user85
相关产品推荐
相关产品推荐

