首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

Java 連接 MySQL 完整教學:JDBC 驅動安裝、Classpath 配置、建庫建表、CRUD 代碼範例、中文編碼處理

     編輯:MySQL 綜合教學

環境準備

  1. JDK 1.5+(現代建議 JDK 8/11/17 LTS)。
  2. MySQL Server 安裝完成、服務啟動。
  3. 下載 MySQL Connector/J (JDBC 驅動):
    dev.mysql.com/downloads/connector/j/
    解壓取出 mysql-connector-java-x.x.xx.jar。

Classpath 配置(兩種方式擇一)

  • 系統環境變數:CLASSPATH=.;D:\mysql-connector-java-5.0.5-bin.jar(含當前目錄 . 與分號分隔)。
  • IDE/建構工具(推薦):Maven/Gradle 專案加入依賴:
    <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.33</version></dependency>

建立測試資料庫與表

CREATE DATABASE scutcs;
USE scutcs;
CREATE TABLE student (
    sno CHAR(7) NOT NULL PRIMARY KEY,
    sname VARCHAR(8) NOT NULL,
    sex CHAR(2) NOT NULL,
    bdate DATE NOT NULL,
    height DECIMAL(5,2) DEFAULT 0
);
INSERT INTO student VALUES 
('0104421','周遠行','男','1985-01-01',175.5),
('0208123','王義平','男','1986-02-02',170.0),
('0209120','王大力','男','1987-03-03',180.0),
('0309119','李維','女','1988-04-04',160.0),
('0309203','歐陽美林','女','1989-05-05',165.0);

完整 Java 代碼範例

import java.sql.*;

public class JDBCTest {
    public static void main(String[] args) {
        String driver = "com.mysql.cj.jdbc.Driver";  // 8.0+ 驅動類
        String url = "jdbc:mysql://127.0.0.1:3306/scutcs?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Taipei";
        String user = "root";
        String password = "root";

        try {
            Class.forName(driver);
            Connection conn = DriverManager.getConnection(url, user, password);
            if (!conn.isClosed()) 
                System.out.println("Succeeded connecting to the Database!");

            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery("SELECT sno, sname FROM student");

            System.out.println("-----------------");
            System.out.println("執行結果如下所示:");
            System.out.println("-----------------");
            System.out.println("學號\t姓名");
            System.out.println("-----------------");

            while (rs.next()) {
                String sno = rs.getString("sno");
                String sname = rs.getString("sname");
                // 若資料庫為 UTF-8,通常無需手動轉碼;舊版 GBK 環境才需下行
                // sname = new String(sname.getBytes("ISO-8859-1"), "GB2312");
                System.out.println(sno + "\t" + sname);
            }

            rs.close();
            stmt.close();
            conn.close();
        } catch (ClassNotFoundException e) {
            System.err.println("找不到驅動程式: " + e.getMessage());
        } catch (SQLException e) {
            System.err.println("SQL 錯誤: " + e.getMessage());
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

關鍵點提醒

項目說明
驅動類別名5.1.x: com.mysql.jdbc.Driver;8.0+: com.mysql.cj.jdbc.Driver
URL 參數useUnicode=true&characterEncoding=UTF-8 解決中文;serverTimezone 避免時區警告
資源關閉一定要在 finally 或 try-with-resources 關閉 ResultSet/Statement/Connection
PreparedStatement生產環境**務必用參數化查詢**防 SQL 注入、提升效能
連線池實務上配合 HikariCP/Druid/Tomcat JDBC Pool,不直接建立連線
原文標題:java連接MYSQL
連結:https://www.cnblogs.com/soplayer/archive/2007/06/26/796565.html
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved