首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

微軟官方 SQL Server JDBC 驅動已上架 Maven Central,告別手動安裝

     編輯:Java 綜合教學

微軟官方 SQL Server JDBC 驅動已上架 Maven Central,告別手動安裝

歷經多年呼聲,微軟終於將 Microsoft JDBC Driver for SQL Server 發布至 Maven Central Repository。開發者無需再下載 sqljdbc4.jar 手動 mvn install:install-file,只需在 pom.xml 宣告依賴即可自動解析,極大簡化專案建構與 CI/CD 流程。

新版依賴坐標(以 Java 8 為例)

<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>6.1.0.jre8</version>
</dependency>
  • artifactId 從 sqljdbc4 變更為 mssql-jdbc。
  • 版本號包含 JRE 版本後綴:6.1.0.jre7、6.1.0.jre8、6.1.0.jre11 等,按專案 JDK 選擇。
  • 最新版本請查 MvnRepository。

舊版手動安裝痛點回顧

# 每台機器、每次清理本地倉庫都要重跑
mvn install:install-file \
  -DgroupId=com.microsoft.sqlserver \
  -DartifactId=sqljdbc4 \
  -Dversion=4.0 \
  -Dpackaging=jar \
  -Dfile=path/to/sqljdbc4.jar

IDE 仍需重啟刷新索引,團隊協作時新成員易遺漏步驟。

連線字串範例

jdbc:sqlserver://localhost:1433;databaseName=MyDB;encrypt=true;trustServerCertificate=true
  • SQL Server 2016+ 建議啟用 encrypt=true。
  • 驅動類名:com.microsoft.sqlserver.jdbc.SQLServerDriver(自動註冊,JDBC 4.0+ 無需 Class.forName)。

附錄:.NET 調用 Java REST API 日期傳遞避坑指南

Java java.util.Date 序列化為 JSON 時預設為時間戳或 ISO-8601 字串,.NET DateTime 直接序列化格式可能不匹配,導致 Java 反序列化偏移或失敗。

問題重現

// C# 實體
public class Customer {
    public string FirstName { get; set; }
    public DateTime CreateTime { get; set; } // 預設 Kind=Unspecified
}
// 直接 JSON 序列化傳給 Java,Java 端 Date 欄位解析錯誤

解決方案 1:手動格式化為 ISO-8601 UTC

var json = $"{{\"firstName\":\"{c.FirstName}\",\"createTime\":\"{c.CreateTime.ToUniversalTime():yyyy-MM-ddTHH:mm:ss}\"}}";

解決方案 2:Newtonsoft.Json 統一序列化設定(推薦)

var settings = new JsonSerializerSettings {
    DateFormatString = "yyyy'-'MM'-'dd'T'HH':'mm':'ss",
    DateTimeZoneHandling = DateTimeZoneHandling.Utc // 強制轉 UTC
};
var json = JsonConvert.SerializeObject(customer, settings);

Java 端使用 Jackson @JsonFormat(pattern="yyyy-MM-dd'T'HH:mm:ss", timezone="UTC") 對應接收。

總結

  • 升級 mssql-jdbc 依賴,刪除本地手動安裝腳本,簡化建構。
  • 跨語言日期傳輸統一採用 ISO-8601 UTC 字串,避免時區/格式不一致。
  • 配合 Spring Boot 2.x + HikariCP,資料源配置更簡潔:spring.datasource.url=jdbc:sqlserver://...。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved