📣

TiDB Cloud Serverless 现已更名为
Starter
!此页面由 AI 自动翻译,英文原文请见
此处。

选择 Driver 或 ORM

TiDB 与 MySQL 协议高度兼容,但某些功能与 MySQL 不兼容。完整的兼容性差异列表,请参见 MySQL Compatibility

Java

本节介绍在 Java 中如何使用驱动程序和 ORM 框架。

Java 驱动程序

    Support level: Full

    你可以按照 MySQL 文档 下载并配置 Java JDBC 驱动程序。建议使用与 TiDB v6.3.0 及以上版本兼容的最新 GA 版本的 MySQL Connector/J。

    关于如何构建完整应用的示例,请参见 Build a simple CRUD app with TiDB and JDBC

    Support level: Full

    TiDB-JDBC 是基于 MySQL 8.0.29 定制的 Java 驱动程序。该驱动基于 MySQL 官方版本 8.0.29 编译,修复了原生 JDBC 在 prepare 模式下多参数和多字段 EOF 的 bug,并新增了自动维护 TiCDC 快照和 SM3 认证插件等功能。

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

    如果你使用 Maven,请在 pom.xml 文件的 <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 框架

      Support level: 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 版本早于 6.0.0.Beta2,请先升级。

      Support level: 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 应用的示例,请参见 Build a simple CRUD app with TiDB and MyBatis

      Java 客户端负载均衡

      tidb-loadbalance

      Support level: Full

      tidb-loadbalance 是应用端的负载均衡组件。使用 tidb-loadbalance,可以自动维护 TiDB 服务器的节点信息,并根据策略在客户端分发 JDBC 连接。直接使用客户端应用与 TiDB 服务器的 JDBC 连接,性能优于使用负载均衡组件。

      目前,tidb-loadbalance 支持的策略包括:roundrobin、random 和 weight。

      如果你使用 Maven,请在 pom.xml 文件的 <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 中如何使用驱动程序和 ORM 框架。

      Golang 驱动程序

      go-sql-driver/mysql

      Support level: Full

      要下载并配置 Golang 驱动程序,请参考 go-sql-driver/mysql 文档

      关于如何构建完整应用的示例,请参见 Connect to TiDB with Go-MySQL-Driver

      Golang ORM 框架

      GORM

      Support level: Full

      GORM 是 Golang 中流行的 ORM 框架。要获取所有依赖,可以使用 go get 命令。

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

      关于使用 GORM 构建 TiDB 应用的示例,请参见 Connect to TiDB with GORM

      Python

      本节介绍在 Python 中如何使用驱动程序和 ORM 框架。

      Python 驱动程序

        Support level: Compatible

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

        关于如何使用 PyMySQL 构建 TiDB 应用的示例,请参见 Connect to TiDB with PyMySQL

        Support level: Compatible

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

        关于如何使用 mysqlclient 构建 TiDB 应用的示例,请参见 Connect to TiDB with mysqlclient

        Support level: Compatible

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

        关于如何使用 MySQL Connector/Python 构建 TiDB 应用的示例,请参见 Connect to TiDB with MySQL Connector/Python

        Python ORM 框架

          Support level: Full

          django 是流行的 Python Web 框架。为解决 TiDB 与 Django 之间的兼容性问题,PingCAP 提供了 TiDB 方言 django-tidb。你可以参考 django-tidb 安装指南

          关于使用 Django 构建 TiDB 应用的示例,请参见 Connect to TiDB with Django

          Support level: Full

          SQLAlchemy 是流行的 Python ORM 框架。要获取所有依赖,可以使用 pip install SQLAlchemy==1.4.44 命令。建议使用 SQLAlchemy 1.4.44 及以上版本。

          关于使用 SQLAlchemy 构建 TiDB 应用的示例,请参见 Connect to TiDB with SQLAlchemy

          Support level: Compatible

          peewee 是流行的 Python ORM 框架。要获取所有依赖,可以使用 pip install peewee==3.15.4 命令。建议使用 peewee 3.15.4 及以上版本。

          关于使用 peewee 构建 TiDB 应用的示例,请参见 Connect to TiDB with peewee

          在确定了驱动程序或 ORM 后,你可以 连接到你的 TiDB 集群

          需要帮助?

          DiscordSlack 社区提问,或 提交支持工单

          文档内容是否有帮助?