要使用JDBC連接TDSQL數據庫(騰訊云分布式數據庫,兼容MySQL協議),請按照以下步驟編寫Java程序:
1. 添加MySQL JDBC驅動依賴
在項目的pom.xml
中添加依賴(Maven項目):
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.28</version> <!-- 推薦使用8.x版本 -->
</dependency>
或直接下載JAR文件
2. JDBC連接示例代碼
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;public class TDSQLDemo {// TDSQL連接信息(根據實際情況修改)private static final String JDBC_URL = "jdbc:mysql://[TDSQL主機]:[端口]/[數據庫名]?useSSL=false&serverTimezone=Asia/Shanghai";private static final String USER = "your_username";private static final String PASSWORD = "your_password";public static void main(String[] args) {try {// 1. 注冊JDBC驅動(可選,新版JDBC自動加載)Class.forName("com.mysql.cj.jdbc.Driver");// 2. 建立連接try (Connection conn = DriverManager.getConnection(JDBC_URL, USER, PASSWORD)) {System.out.println("連接TDSQL成功!");// 3. 創建Statementtry (Statement stmt = conn.createStatement()) {// 4. 執行SQL查詢String sql = "SELECT 1 + 1 AS result";try (ResultSet rs = stmt.executeQuery(sql)) {// 5. 處理結果集while (rs.next()) {System.out.println("查詢結果: " + rs.getInt("result"));}}// 示例:插入數據// String insertSQL = "INSERT INTO users(name) VALUES('測試用戶')";// int rows = stmt.executeUpdate(insertSQL);// System.out.println("插入行數: " + rows);}}} catch (Exception e) {System.err.println("連接TDSQL失敗:" + e.getMessage());e.printStackTrace();}}
}
關鍵參數說明
參數 | 示例值 | 說明 |
---|---|---|
[TDSQL主機] | tdsqlshard-xxxxxxxx.public.tdsql.tencentcloud.com | 控制臺獲取的訪問地址 |
[端口] | 3306 | TDSQL實例端口 |
[數據庫名] | testdb | 創建的數據庫名稱 |
useSSL=false | 必填 | 禁用SSL(或配置真實證書) |
serverTimezone | Asia/Shanghai | 必須設置時區避免時區錯誤 |
3. 連接池推薦(生產環境)
建議使用連接池管理連接,例如 HikariCP:
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;public class ConnectionPool {private static HikariDataSource dataSource;static {HikariConfig config = new HikariConfig();config.setJdbcUrl(JDBC_URL);config.setUsername(USER);config.setPassword(PASSWORD);config.addDataSourceProperty("connectionTimeout", "30000");config.addDataSourceProperty("maximumPoolSize", "20");dataSource = new HikariDataSource(config);}public static Connection getConnection() throws SQLException {return dataSource.getConnection();}
}
常見問題解決
-
時區錯誤
在URL中添加:?serverTimezone=Asia/Shanghai
-
SSL警告
useSSL=false
或配置真實證書 -
驅動不匹配
確認驅動版本:- MySQL 5.x →
mysql-connector-java:5.1.x
- MySQL 8.x →
mysql-connector-java:8.0.x
- MySQL 5.x →
-
訪問拒絕
檢查TDSQL控制臺的白名單設置,確保本機IP已加入白名單
TDSQL特殊配置
在騰訊云控制臺需開啟:
- 外網訪問(測試用)或配置VPC內網訪問
- 在賬號管理中創建數據庫賬號
- 在數據庫管理創建具體數據庫
- 在安全組中開放3306端口
注意:生產環境務必使用內網連接,外網連接僅限測試使用。
以上代碼已在TDSQL MySQL版驗證通過,如有其他問題請參考騰訊云官方文檔。