環境準備
- 安裝 JDK(建議 1.8+)。
- 安裝 MySQL 數據庫。
- 下載 JDBC 驅動
mysql-connector-java-5.1.x-bin.jar(或更新版)。
- 將 jar 包加入 classpath:
我的電腦 → 屬性 → 高級 → 環境變量 → 系統變量 → Classpath,在末尾添加 ;D:\mysql-connector-java-5.1.x\mysql-connector-java-5.1.x-bin.jar。
數據庫與表創建
CREATE DATABASE SCUTCS;
USE SCUTCS;
CREATE TABLE STUDENT (
SNO CHAR(7) NOT NULL,
SNAME VARCHAR(8) NOT NULL,
SEX CHAR(2) NOT NULL,
BDATE DATE NOT NULL,
HEIGHT DEC(5,2) DEFAULT 0.00,
PRIMARY KEY(SNO)
);
INSERT INTO STUDENT VALUES ('0104421', '周遠行', '男', '1990-01-01', 175.5);
-- 更多測試數據...
Java 連接查詢代碼
import java.sql.*;
public class JDBCTest {
public static void main(String[] args) {
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://127.0.0.1:3306/scutcs";
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 * FROM student");
System.out.println("-----------------");
System.out.println("學號\t姓名");
System.out.println("-----------------");
while (rs.next()) {
String sno = rs.getString("sno");
String name = rs.getString("sname");
// 處理中文編碼問題(舊版驅動需手動轉碼)
name = new String(name.getBytes("ISO-8859-1"), "GB2312");
System.out.println(sno + "\t" + name);
}
rs.close();
conn.close();
} catch (ClassNotFoundException e) {
System.out.println("Sorry, can't find the Driver!");
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
運行結果
Succeeded connecting to the Database!
-----------------
學號 姓名
-----------------
0104421 周遠行
0208123 王義平
0209120 王大力
0309119 李 維
0309203 歐陽美林
注意事項
- MySQL 5.0+ 驅動類名為
com.mysql.jdbc.Driver,8.0+ 為 com.mysql.cj.jdbc.Driver。
- URL 參數建議加上
?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai 避免編碼與時區問題。
- 生產環境請使用連接池(HikariCP、Druid)管理連接。