使用 JDBC 連接 MySQL、SQL Server數據庫
## 系統配置
> Microsoft Windows 版本 > OS 名稱: **Microsoft Windows 10 專業版** > OS 版本: **10.0.17763 暫缺 Build 17763 (1809)** > OS 制造商: **Microsoft Corporation** > > MySQL **8.0.16** > Microsoft SQL Server **2008 (RTM) - 10.0.1600.22 (X64)** Jul 9 2008 14:17:44 Copyright (c) 1988-2008 Microsoft Corporation Enterprise Evaluation Edition (64-bit) on Windows NT 6.2
## 下載對應JDBC驅動
鏈接:https://pan.baidu.com/s/1u1ZqK0ERWWtWbXC_zgxIXQ
提取碼:cg17
配置相關環境
有以下兩種方式加載JDBC驅動: + 根據系統平台和JDK版本,選擇所下載驅動文件夾中對應的驅動(如 mysql-connector-java-5.1.47-bin.jar 或 mssql-jdbc-7.2.2.jre8.jar 等文件),復制到JDK安裝目錄 **jre/lib/ext** 下。 + 使用IDE(Eclipse、MyEclipse、Idea)右鍵 **Configure Build Path**、**Project Structure** 菜單來 **Add External JARs**、**Add Library Files**,具體詳細步驟請移步百度。
**注意:** 使用 Windows 身份驗證連接 SQL Server 時,需要根據系統平台復制對應驅動包文件夾 **auth** 下 **x86 x64 **文件夾中 **sqljdbc_auth.dll** 到 JDK 安裝目錄的 **bin** 目錄。
准備好連接
然后可以通過以下 **public static Connection getMySQLConnect(String USER, String PASSWORD, String dataBaseName, String port) 、public static Connection getSQLServerConnectByWindowsAccount(String dataBaseName) 、 public static Connection getSQLServerConnectBySQLAuthorization(String dataBaseName, String USER, String PASSWORD)** 方法來進行與 MySQL、SQL Server 連接,返回 **Connection** 對象。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
public class DataBaseConnect {
/**
*
* 連接MySQL數據庫
* @param USER 用戶
* @param PASSWORD 密碼
* @param dataBaseName 數據庫
* @param port 端口
* @return 連接對象
*/
public static Connection getMySQLConnect(String USER, String PASSWORD, String dataBaseName, String port) {
Connection con = null;
String DbDriver = "com.mysql.jdbc.Driver";
String URL = "jdbc:mysql://localhost:" + port + "/" + dataBaseName + "?characterEncoding=utf8&useSSL=false";
try {
Class.forName(DbDriver);
con = DriverManager.getConnection(URL, USER, PASSWORD);
if (con != null) {
System.out.println("Connect MySQL " + dataBaseName + " Success");
} else {
System.out.println("Connect MySQL " + dataBaseName + " Fail");
}
} catch (Exception e) {
e.printStackTrace();
}
return con;
}
/**
* 使用Windows驗證連接SQL Server數據庫
*
* 注意;
* 請選擇所下載驅動包sqljdbc中 auth 文件夾下x64 x86兩文件夾對應好jdk平台 復制其下的 sqljdbc_auth.dll 文件到jdk安裝目錄下bin文件夾
*
* 否則將會報 “com.microsoft.sqlserver.jdbc.SQLServerException: 沒有為集成身份驗證配置驅動程序。” 異常。
*
* @param dataBaseName 數據庫
* @return 連接對象
*/
public static Connection getSQLServerConnectByWindowsAccount(String dataBaseName) {
Connection con = null;
PreparedStatement ps = null;
ResultSet result = null;
String DbDriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
String URL = "jdbc:sqlserver://localhost:1433;integratedSecurity=true;databaseName=" + dataBaseName;
try {
Class.forName(DbDriver);
con = DriverManager.getConnection(URL);
if (con != null) {
System.out.println("Use Windows Authorization Connect " + dataBaseName + " Success");
} else {
System.out.println("Use Windows Authorization Connect " + dataBaseName + " Fail");
}
} catch (Exception e) {
e.printStackTrace();
}
return con;
}
/**
* 使用SQL驗證連接SQL Server數據庫
* @param dataBaseName 數據庫
* @param USER 用戶名
* @param PASSWORD 密碼
* @return 連接對象
*/
public static Connection getSQLServerConnectBySQLAuthorization(String dataBaseName, String USER, String PASSWORD) {
Connection con = null;
String DbDriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
String URL = "jdbc:sqlserver://localhost:1433;databaseName=" + dataBaseName;
try {
Class.forName(DbDriver);
con = DriverManager.getConnection(URL,USER,PASSWORD);
if (con != null) {
System.out.println("Use SQL Authorization Connect " + dataBaseName + " Success");
} else {
System.out.println("Use SQL Authorization Connect " + dataBaseName + " Fail");
}
} catch (Exception e) {
e.printStackTrace();
}
return con;
}
/**
* 主調用方法:
* 根據實際情況可以刪除 然后在別處調用即可
* @param args
*/
public static void main(String[] args) {
// 用戶名 密碼 數據庫 端口(默認3306)
getMySQLConnect("root", "root", "sys", "3307");
// 數據庫
getSQLServerConnectByWindowsAccount("tempdb");
// 數據庫 用戶名(默認sa) 密碼 (請確保 服務器屬性-安全性 下 服務器身份驗證 方式為 SQL Server 和 Windows 身份驗證模式)
getSQLServerConnectBySQLAuthorization("tempdb", "sa", "123456");
}
}