使用 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");
	}
	
}