Java IDEA配置JDBC連接SQL Server數據庫和代碼提示
初學數據庫和Java,記錄一下配置Java連接SQL Server的過程。
啟用SQL Server的TCP/IP協議連接
到「開始菜單->Microsoft SQL Server->SQL Server 2019 配置管理器
」,選擇「SQL網絡配置 -> <實例名字>的協議
」,啟用所有協議。
再回到「SQL Server服務
」,右鍵SQL Server
選擇重啟。
SQL Server的默認TCP端口號為1433,因此我們可以打開CMD測試一下。
在CMD中輸入執行telnet localhost 1433
,如果無法連接說明配置有誤,可以去配置管理器里雙擊TCP/IP,拉到最下面,查看一下端口號。
如果跳轉到了Telnet窗口(右邊那樣,只有一個光標在閃),就是成功了。
下載JDBC驅動
JDBC驅動版本選擇
如果是SQL Server 2012及以上,可以跳過這一步。
到「支持矩陣 - JDBC Driver for SQL Server | Microsoft Docs」查詢與你的數據庫兼容的JDBC版本號。
微軟官網下載
如果是SQL Server 2012及以上,直接到「下載 - JDBC Driver for SQL Server | Microsoft Docs」下載。
否則,到「支持矩陣 - JDBC Driver for SQL Server | Microsoft Docs」下載與你的數據庫兼容的JDBC版本。
下載后解壓,目錄結構應如「<安裝目錄>\sqljdbc_<版本>\<語言>\<具體文件>
」,內含若干個.jar
文件,對應了不同版本的JDK支持。
由於.jar
向下兼容,因此JDK 16用JDK 1.8的包也沒問題。release.txt
文件中也寫出了各jar
的支持列表:
但是注意,如果JDK 15用了JDK 16的JAR
包,因為Major Version比16的小,會出現版本不兼容的異常:
Exception in thread "main" java.lang.UnsupportedClassVersionError: com/microsoft/sqlserver/jdbc/SQLServerDriver has been compiled by a more recent version of the Java Runtime (class file version 60.0), this version of the Java Runtime only recognizes class file versions up to 59.0
JetBrains自帶下載
首先進Settings->Plugins
,確保已經安裝和啟用了Database Tools and SQL
插件,一般IDEA自帶,不需要另行下載。
雙擊shift搜索Data Source
,進入數據源設置。也可以選擇右邊的Database
標簽,選擇Data Source Properties
。
到Drivers
,找到Microsoft SQL Server
,IDEA會自動搜索到最新的驅動版本,點擊下載。
也可以手動選擇版本。
添加到項目依賴項
如果是在IDEA內下載的JDBC驅動,其jar
包都在%APPDATA%\JetBrains\IntelliJIdea<版本號>\jdbc-drivers\
目錄下。
比如MS SQL Server的JDBC驅動9.4.0版本在%APPDATA%\JetBrains\IntelliJIdea2021.3\jdbc-drivers\SQL Server\9.4.0\mssql-jdbc-9.4.0.jre8.jar
。
到Project Structure
設置中,Modules->Dependencies
添加驅動JAR
包。
編程測試
驅動類名:com.microsoft.sqlserver.jdbc.SQLServerDriver
SQL Server連接字符串基本格式:jdbc:sqlserver://<IP>:<PORT>;database=<DB_NAME>;user=<USER>;password=<PWD>
以系統數據庫master
的系統表MSreplication_options
為例:
查詢前四列內容:SELECT optname, value, major_version, minor_version FROM MSreplication_options
import java.sql.*;
public class Test {
public static void main(String[] args) throws Exception {
// (1) 注冊驅動
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
// (2) 用「連接字符串」連接數據庫
String url = "jdbc:sqlserver://localhost:1433;database=master;user=sa;password=123456";
try (Connection conn = DriverManager.getConnection(url)) {
// (3) 執行查詢語句
Statement stmt = conn.createStatement();
String SQL = "SELECT optname, value, major_version, minor_version FROM MSreplication_options";
ResultSet rs = stmt.executeQuery(SQL);
// (4) 游標提取結果
while (rs.next()) {
System.out.printf("%-16s", rs.getString(1));
// bit類型數據可以用Java中的Boolean保存
System.out.printf("%-8b", rs.getBoolean(2));
System.out.printf("%-8d", rs.getInt(3));
System.out.printf("%-8d\n", rs.getInt(4));
}
}
catch (SQLException e) {
e.printStackTrace();
}
}
}
運行結果:
配置Data Source快速查看DB、執行SQL語句、提示
和從JetBrains下載JDBC驅動一樣,到Data Source Properties
中去。
如果是從JB下載的JDBC驅動,直接下一步。否則,如果是自行下載的JDBC驅動,那么到Driver
選項卡,選擇到你的數據庫產品,點擊Driver Files
的加號,選擇JDK1.8
的JDBC驅動。
然后選擇到Data Source
選項卡,點擊加號添加數據源,按你的端口號、登錄方式、數據庫名字填寫。
點擊最下面的Connection Test
,測試能否正常連接。失敗的話就檢查數據庫的設置,比如密碼是否正確、用戶名能否用於登錄。
這樣,就能正常使用數據源插件帶來的便利了。這個插件不止IDEA,在PyCharm、CLion等等其他的JerBrains產品中也有,但都依賴於JDBC驅動運行,配置過程都一樣。
比如可以直接在Database
側欄中查看表的定義:
也可以在代碼中獲得提示信息: