使用 JDBC 连接 MySQL、SQL Server数据库
系统配置
Microsoft Windows 版本
OS 名称: Microsoft Windows 10 专业版
OS 版本: 10.0.17763 暂缺 Build 17763 (1809)
OS 制造商: Microsoft CorporationMySQL 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");
}
}