首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MM.MySQL JDBC 驅動程式安裝與使用指南:Type 4 純 Java 驅動

     編輯:MySQL 資料庫相關知識

MM.MySQL(後更名為 MySQL Connector/J)是 Type 4 純 Java、符合 JDBC 2.0 規範的 MySQL 驅動。本文記錄 2.0 pre5 版本的安裝、連線 URL 參數、中文編碼處理與 JSP 完整範例。

1. 安裝步驟

  1. 下載 mm.mysql.jdbc-2.0pre5.jar(或較新版 mysql-connector-java-x.x.xx.jar)
  2. 解壓至任意目錄,如 C:\mm.mysql
  3. 將 jar 加入 CLASSPATH:
    .;C:\jdk1.2.2\lib\tools.jar;C:\jdk1.2.2\lib\dt.jar;C:\mm.mysql\mm.mysql.jdbc-2.0pre5.jar
    

2. 註冊驅動

Class.forName("org.gjt.mm.mysql.Driver").newInstance();
// 新版 (5.1+/8.0+): com.mysql.cj.jdbc.Driver

3. JDBC URL 參數完整表

jdbc:mysql://[host][:port]/dbname[?param1=value1¶m2=value2...]
參數說明預設
user資料庫使用者無
password密碼無
autoReconnect連線斷開自動重連false
maxReconnects重試次數3
initialTimeout重連等待秒數2
maxRows查詢最大回傳列數 (0=全部)0
useUnicode使用 Unicode 輸出false
characterEncoding字元編碼 (配合 useUnicode)無

4. 中文亂碼解決方案

jdbc:mysql://localhost/test?user=root&password=xxx&useUnicode=true&characterEncoding=8859_1
  • useUnicode=true:啟用字元集轉換
  • characterEncoding=8859_1:ISO-8859-1 (Latin1) 可正確儲存中文;現代建議 utf8 或 utf8mb4
  • 資料表/欄位字元集必須一致:CHARSET=utf8mb4

5. JSP 完整範例:通訊錄 CRUD

-- SQL 建表
CREATE DATABASE addressbook;
USE addressbook;
CREATE TABLE addressbook (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(30), address VARCHAR(255), phone VARCHAR(20)
);
INSERT INTO addressbook (name,address,phone) VALUES ('jjx','zhejiang yuyao','0574-2222222');
<%@ page import="java.sql.*" %>
<%
  out.println("通訊錄!");
  try {
    Class.forName("org.gjt.mm.mysql.Driver").newInstance();
  } catch (Exception e) { out.println("驅動載入失敗: " + e); }

  try {
    Connection conn = DriverManager.getConnection(
      "jdbc:mysql://localhost/addressbook?user=root&password=jjx&useUnicode=true&characterEncoding=8859_1");
    Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
    ResultSet rs = stmt.executeQuery("SELECT * FROM addressbook");
    while (rs.next()) {
      out.println(rs.getString("name") + " - " + rs.getString("phone") + "<br>");
    }
    rs.close(); stmt.close(); conn.close();
  } catch (SQLException e) { out.println("SQL 錯誤: " + e); }
%>

現代遷移提醒

  • MM.MySQL 已併入官方 MySQL Connector/J,請直接使用 mysql-connector-java
  • JDBC 4.0+ (Java 6+) 無需 Class.forName(),自動透過 SPI 發現驅動
  • 連線池請用 HikariCP / Druid / Tomcat JDBC Pool,勿手寫

結語

Type 4 純 Java 驅動無需原生庫,部署最簡單。掌握 useUnicode、characterEncoding、autoReconnect 等核心參數,能解決 90% 的連線與編碼問題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved