Class.forName)Connection 物件Maven:
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc11</artifactId>
<version>23.2.0.0</version>
</dependency>
public Connection getOracleConnection() throws SQLException {
// 1. 註冊驅動(可選)
// Class.forName("oracle.jdbc.OracleDriver");
// 2. 連接字串
// 格式:jdbc:oracle:thin:@//host:port/service_name
// 或:jdbc:oracle:thin:@host:port:SID (舊式)
String url = "jdbc:oracle:thin:@//192.168.1.100:1521/ORCLPDB1";
String user = "scott";
String password = "tiger";
// 3. 獲取連接
return DriverManager.getConnection(url, user, password);
}
// HikariCP 範例
HikariConfig config = new HikariConfig();
config.setJdbcUrl(url);
config.setUsername(user);
config.setPassword(password);
config.setMaximumPoolSize(20);
config.setMinimumIdle(5);
config.setConnectionTimeout(30000);
config.setIdleTimeout(600000);
config.setMaxLifetime(1800000);
config.addDataSourceProperty("connectionInitSql", "ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'");
HikariDataSource ds = new HikariDataSource(config);
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.2.0</version>
</dependency>
public Connection getMySQLConnection() throws SQLException {
// Class.forName("com.mysql.cj.jdbc.Driver"); // 8.0+ 自動載入
String url = "jdbc:mysql://192.168.1.100:3306/mydb"
+ "?useSSL=false"
+ "&serverTimezone=Asia/Shanghai"
+ "&characterEncoding=utf8"
+ "&allowPublicKeyRetrieval=true"
+ "&rewriteBatchedStatements=true"; // 批次優化
String user = "root";
String password = "123456";
return DriverManager.getConnection(url, user, password);
}
| 參數 | 作用 |
|---|---|
serverTimezone | 避免時區警告,推薦 Asia/Shanghai |
useSSL=false | 開發環境關閉 SSL 減少握手 |
allowPublicKeyRetrieval=true | 支援 caching_sha2_password 認證 |
rewriteBatchedStatements=true | 批次 INSERT 自動重寫為多值語句,大幅提升效能 |
Connection/Statement/ResultSetvalidationQuery="SELECT 1"、testWhileIdle=truepublic class DbTest {
public static void main(String[] args) {
try (Connection c = getMySQLConnection();
Statement s = c.createStatement();
ResultSet rs = s.executeQuery("SELECT VERSION()")) {
if (rs.next()) System.out.println("MySQL 版本:" + rs.getString(1));
} catch (Exception e) {
e.printStackTrace();
}
}
}
保存此範本,新專案複製修改 URL/帳密即可快速上手。