欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用 JDBC 连接MySQL 、SQL Server数据库

程序员文章站 2024-03-22 08:49:16
...

使用 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 PathProject Structure 菜单来 Add External JARsAdd Library Files,具体详细步骤请移步百度。


注意:
使用 Windows 身份验证连接 SQL Server 时,需要根据系统平台复制对应驱动包文件夹 authx86 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");
    }
    
}