选择驱动或 ORM 框架

注意:

TiDB 支持等级说明:

  • Full:此 Driver 或 ORM 没有已知的 issues。
  • Verified:可能会因为 TiDB 与 MySQL 的兼容性问题,导致出现错误。

关于更多 TiDB 支持的第三方工具,你可以查看 TiDB 支持的第三方工具。

TiDB 兼容 MySQL 的协议,但存在部分与 MySQL 不兼容的特性,例如:

TiDB 不支持:

  • 存储过程与函数
  • 触发器
  • 外键约束

TiDB 与 MySQL 有差异:

  • 自增 ID:可保证全局唯一,或单 TiDB 节点的自增,但无法保证全局自增。

全部兼容性差异可查看与 MySQL 兼容性对比

Java

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

Java Drivers

xml

  io.github.lastincisor
  mysql-connector-java
  8.0.29-tidb-1.0.0
xml

  io.github.lastincisor
  mysql-connector-java
  8.0.29-tidb-1.0.0


    org.bouncycastle
    bcprov-jdk15on
    1.67


    org.bouncycastle
    bcpkix-jdk15on
    1.67
dependenciesgradle
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 框架

注意:

6.0.0.Beta2xml

    org.hibernate.orm
    hibernate-core
    6.0.0.CR2



    mysql
    mysql-connector-java
    5.1.49
Gradledependenciesgradle
implementation 'org.hibernate:hibernate-core:6.0.0.CR2'
implementation 'mysql:mysql-connector-java:5.1.49'org.hibernate.dialect.TiDBDialect6.0.0.Beta2org.hibernate.dialect.MySQL57Dialectxml

    org.mybatis
    mybatis
    3.5.9



    mysql
    mysql-connector-java
    5.1.49
dependenciesgradle
implementation 'org.mybatis:mybatis:3.5.9'
implementation 'mysql:mysql-connector-java:5.1.49'

Java 客户端负载均衡

tidb-loadbalance

支持等级:Full

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

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

注意:

tidb-loadbalance 需配合 mysql-connector-j 一起使用。

  1. <dependency>
  2. <groupId>io.github.lastincisor</groupId>
  3. <artifactId>mysql-connector-java</artifactId>
  4. <version>8.0.29-tidb-1.0.0</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>io.github.lastincisor</groupId>
  8. <artifactId>tidb-loadbalance</artifactId>
  9. <version>0.0.5</version>
  10. </dependency>
dependencies
  1. implementation group: 'io.github.lastincisor', name: 'mysql-connector-java', version: '8.0.29-tidb-1.0.0'
  2. 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 驱动程序即可使用。

有关一个完整的实例应用程序,可参阅使用 TiDB 和 go-sql-driver/mysql 构建一个 Golang 应用。

Golang ORM 框架

GORM

支持等级:Full

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

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