使用 JDBC 連接MySQL 、SQL Server數據庫


使用 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 (Build 9200: ) > JDBC for MySQL **mysql-connector-java-5.1.47** > JDBC for SQL Server **Microsoft JDBC Driver 7.2 for SQL Server(chs)**

## 下載對應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");
	}
	
}




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM