📣

TiDB Cloud Serverless 现已更名为
TiDB Cloud Starter
!体验不变,名字焕新。
立即试用 →

选择驱动或 ORM 框架

TiDB 兼容 MySQL 的协议,但存在部分与 MySQL 不兼容或有差异的特性,具体信息可查看与 MySQL 兼容性对比

Java

本节介绍 Java 语言的 Driver 及 ORM 的使用方式。

Java Drivers

    支持等级:Full

    按照 MySQL 文档中的说明下载并配置 Java JDBC 驱动程序即可使用。对于 TiDB v6.3.0 及以上版本,建议使用 MySQL Connector/J 最新 GA 版本。

    有关一个完整的实例应用程序,可参阅 TiDB 和 JDBC 的简单 CRUD 应用程序

    支持等级:Full

    TiDB-JDBC 是基于 MySQL 8.0.29 的定制版本。TiDB-JDBC 基于 MySQL 官方 8.0.29 版本编译,修复了原 JDBC 在 prepare 模式下多参数、多字段 EOF 的错误,并新增 TiCDC snapshot 自动维护和 SM3 认证插件等功能。

    基于 SM3 的认证仅在 TiDB 的 TiDB-JDBC 中支持。

    如果你使用的是 Maven,请将以下内容添加到你的 <dependencies></dependencies>

    <dependency> <groupId>io.github.lastincisor</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.29-tidb-1.0.0</version> </dependency>

    如果你需要使用 SM3 认证,请将以下内容添加到你的 <dependencies></dependencies>

    <dependency> <groupId>io.github.lastincisor</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.29-tidb-1.0.0</version> </dependency> <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcprov-jdk15on</artifactId> <version>1.67</version> </dependency> <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcpkix-jdk15on</artifactId> <version>1.67</version> </dependency>

    如果你使用的是 Gradle,请将以下内容添加到你的 dependencies

    implementation group: 'io.github.lastincisor', name: 'mysql-connector-java', version: '8.0.29-tidb-1.0.0' implementation group: 'org.bouncycastle', name: 'bcprov-jdk15on', version: '1.67' implementation group: 'org.bouncycastle', name: 'bcpkix-jdk15on', version: '1.67'

    Java ORM 框架

      支持等级:Full

      你可以使用 GradleMaven 获取你的应用程序的所有依赖项,且会帮你下载依赖项的间接依赖,而无需你手动管理复杂的依赖关系。注意,只有 Hibernate 6.0.0.Beta2 及以上版本才支持 TiDB 方言。

      如果你使用的是 Maven,请将以下内容添加到你的 <dependencies></dependencies>

      <dependency> <groupId>org.hibernate.orm</groupId> <artifactId>hibernate-core</artifactId> <version>6.2.3.Final</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.33</version> </dependency>

      如果你使用的是 Gradle,请将以下内容添加到你的 dependencies

      implementation 'org.hibernate:hibernate-core:6.2.3.Final' implementation 'mysql:mysql-connector-java:8.0.33'

      额外的,你需要在 Hibernate 配置文件中指定 TiDB 方言 org.hibernate.dialect.TiDBDialect,此方言在 Hibernate 6.0.0.Beta2 以上才可支持。若你无法升级 Hibernate 版本,那么请你直接使用 MySQL 5.7 的方言 org.hibernate.dialect.MySQL57Dialect。但这可能造成不可预料的使用结果,及部分 TiDB 特有特性的缺失,如:序列等。

      支持等级:Full

      你可以使用 GradleMaven 获取应用程序的所有依赖项包括间接依赖,无需手动管理复杂的依赖关系。

      如果你使用的是 Maven,请将以下内容添加到你的 <dependencies></dependencies>

      <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.13</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.33</version> </dependency>

      如果你使用的是 Gradle,请将以下内容添加到你的 dependencies

      implementation 'org.mybatis:mybatis:3.5.13' implementation 'mysql:mysql-connector-java:8.0.33'

      使用 MyBatis 进行 TiDB 应用程序构建的例子,可参阅 TiDB 和 MyBatis 的简单 CRUD 应用程序

      Java 客户端负载均衡

      tidb-loadbalance

      支持等级:Full

      tidb-loadbalance 是应用端的负载均衡组件。通过 tidb-loadbalance,你可以实现自动维护 TiDB server 的节点信息,根据节点信息使用 tidb-loadbalance 策略在客户端分发 JDBC 连接。客户端应用与 TiDB server 之间使用 JDBC 直连,性能高于使用负载均衡组件。

      目前 tidb-loadbalance 已实现轮询、随机、权重等负载均衡策略。

      如果你使用的是 Maven,请将以下内容添加到你的 <dependencies></dependencies>

      <dependency> <groupId>io.github.lastincisor</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.29-tidb-1.0.0</version> </dependency> <dependency> <groupId>io.github.lastincisor</groupId> <artifactId>tidb-loadbalance</artifactId> <version>0.0.5</version> </dependency>

      如果你使用的是 Gradle,请将以下内容添加到你的 dependencies

      implementation group: 'io.github.lastincisor', name: 'mysql-connector-java', version: '8.0.29-tidb-1.0.0' implementation group: 'io.github.lastincisor', name: 'tidb-loadbalance', version: '0.0.5'

      Golang

      本节介绍 Golang 语言的 Driver 及 ORM 的使用方式。

      Golang Drivers

      go-sql-driver/mysql

      支持等级:Full

      按照 go-sql-driver/mysql 文档中的说明获取并配置 Golang 驱动程序即可使用。

      有关一个完整的实例应用程序,可参阅使用 Go-MySQL-Driver 连接到 TiDB

      Golang ORM 框架

      GORM

      支持等级:Full

      GORM 是一个流行的 Golang 的 ORM 框架,你可以使用 go get 获取你的应用程序的所有依赖项。

      go get -u gorm.io/gorm go get -u gorm.io/driver/mysql

      使用 GORM 进行 TiDB 应用程序构建的例子,可参阅使用 GORM 连接到 TiDB

      Python

      本节介绍 Python 语言的 Driver 及 ORM 的使用方式。

      Python Drivers

        支持等级:Compatible

        按照 PyMySQL 文档中的说明下载并配置驱动程序即可使用。建议使用 1.0.2 及以上版本。

        使用 PyMySQL 构建 TiDB 应用程序的例子,可参阅使用 PyMySQL 连接到 TiDB

        支持等级:Compatible

        按照 mysqlclient 文档中的说明下载并配置驱动程序即可使用。建议使用 2.1.1 及以上版本。

        使用 mysqlclient 构建 TiDB 应用程序的例子,可参阅使用 mysqlclient 连接到 TiDB

        支持等级:Compatible

        按照 MySQL Connector/Python 文档中的说明下载并配置驱动程序即可使用。建议使用 8.0.31 及以上版本。

        使用 MySQL Connector/Python 构建 TiDB 应用程序的例子,可参阅使用 MySQL Connector/Python 连接到 TiDB

        Python ORM 框架

          支持等级:Full

          Django 是一个流行的 Python Web 开发框架。为解决 TiDB 与 Django 的兼容性问题,PingCAP 开发了一个专门的适配器 django-tidb。你可以参考 django-tidb 文档进行安装。

          使用 Django 构建 TiDB 应用程序的例子,可参阅使用 Django 连接到 TiDB

          支持等级:Full

          SQLAlchemy 是一个流行的 Python 的 ORM 框架,你可以使用 pip install SQLAlchemy==1.4.44 获取你的应用程序的所有依赖项。建议使用 1.4.44 及以上版本。

          使用 SQLAlchemy 构建 TiDB 应用程序的例子,可参阅使用 SQLAlchemy 连接到 TiDB

          支持等级:Compatible

          peewee 是一个流行的 Python 的 ORM 框架,你可以使用 pip install peewee==3.15.4 获取你的应用程序的所有依赖项。建议使用 3.15.4 及以上版本。

          使用 peewee 构建 TiDB 应用程序的例子,可参阅使用 peewee 连接到 TiDB

          文档内容是否有帮助?