当前位置: 首页 > news >正文

java:如何用 JDBC 连接 TDSQL 数据库

要使用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控制台获取的访问地址
[端口]3306TDSQL实例端口
[数据库名]testdb创建的数据库名称
useSSL=false必填禁用SSL(或配置真实证书)
serverTimezoneAsia/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();}
}

常见问题解决

  1. 时区错误
    在URL中添加:?serverTimezone=Asia/Shanghai

  2. SSL警告
    useSSL=false 或配置真实证书

  3. 驱动不匹配
    确认驱动版本:

    • MySQL 5.x → mysql-connector-java:5.1.x
    • MySQL 8.x → mysql-connector-java:8.0.x
  4. 访问拒绝
    检查TDSQL控制台的白名单设置,确保本机IP已加入白名单


TDSQL特殊配置

在腾讯云控制台需开启:

  1. 外网访问(测试用)或配置VPC内网访问
  2. 账号管理中创建数据库账号
  3. 数据库管理创建具体数据库
  4. 安全组中开放3306端口

注意:生产环境务必使用内网连接,外网连接仅限测试使用。

以上代码已在TDSQL MySQL版验证通过,如有其他问题请参考腾讯云官方文档。

http://www.lqws.cn/news/568981.html

相关文章:

  • HarmonyOS实战:自定义表情键盘
  • 云计算在布莱克-斯科尔斯模型中的应用:解析解、蒙特卡洛模拟与可视化-AI云计算数值分析和代码验证
  • FLOPS、FLOP/s、TOPS概念
  • Excel之证件照换底色3
  • Docker部署
  • 【Typst】纵向时间轴
  • 函数参数及数据结构说明
  • 一阶线性双曲型偏微分方程组的特征值与通解分析
  • ABP VNext + Twilio:全渠道通知服务(SMS/Email/WhatsApp)
  • RagFlow 更适合企业级深度应用,FastGPT 更适合快速开发和原型验证
  • 用户行为序列建模(篇十)-【加州大学圣地亚哥分校】SASRec
  • 对象的finalization机制Test
  • aws(学习笔记第四十八课) appsync-graphql-dynamodb
  • Java猜拳小游戏
  • 基于 SpringBoot 实现一个 JAVA 代理 HTTP / WS
  • node js入门,包含express,npm管理
  • SRS流媒体服务器之本地测试rtc推流bug
  • 2.安装Docker
  • 嵌入式硬件中电容的基本原理与详解
  • python动漫周边电商网站系统
  • ORB EPNP
  • web3区块链-ETH以太坊
  • es6特性-第二部分
  • 【JavaScript】setTimeout和setInterval中的陷阱
  • 数据挖掘、机器学习与人工智能:概念辨析与应用边界
  • Linux基本命令篇 —— cal命令
  • 模型预测控制专题:基于增量模型的无差拍预测电流控制
  • Rust 和C++工业机器人实践
  • React与Vue的主要区别
  • 数据分析标普500