MM.MySQL(後更名為 MySQL Connector/J)是 Type 4 純 Java、符合 JDBC 2.0 規範的 MySQL 驅動。本文記錄 2.0 pre5 版本的安裝、連線 URL 參數、中文編碼處理與 JSP 完整範例。
mm.mysql.jdbc-2.0pre5.jar(或較新版 mysql-connector-java-x.x.xx.jar)C:\mm.mysql.;C:\jdk1.2.2\lib\tools.jar;C:\jdk1.2.2\lib\dt.jar;C:\mm.mysql\mm.mysql.jdbc-2.0pre5.jar
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
// 新版 (5.1+/8.0+): com.mysql.cj.jdbc.Driver
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) | 無 |
jdbc:mysql://localhost/test?user=root&password=xxx&useUnicode=true&characterEncoding=8859_1
useUnicode=true:啟用字元集轉換characterEncoding=8859_1:ISO-8859-1 (Latin1) 可正確儲存中文;現代建議 utf8 或 utf8mb4CHARSET=utf8mb4-- 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); }
%>
mysql-connector-javaClass.forName(),自動透過 SPI 發現驅動HikariCP / Druid / Tomcat JDBC Pool,勿手寫Type 4 純 Java 驅動無需原生庫,部署最簡單。掌握 useUnicode、characterEncoding、autoReconnect 等核心參數,能解決 90% 的連線與編碼問題。