黄东旭解析 TiDB 的核心优势
1104
2023-06-21
本文关于Java 语言的 Driver 及 ORM 的使用方式。
支持等级:Full
按照 MySQL 文档中的说明下载并配置 Java JDBC 驱动程序即可使用。对于 TiDB v6.3.0 及以上版本,建议使用 MySQL Connector/J 8.0.33 及以上版本。
小贴士
在 8.0.32 之前的 MySQL Connector/J 8.0 版本中存在一个 bug,当与 TiDB v6.3.0 之前的版本一起使用时,可能会导致线程卡死。为了避免此问题,建议使用 MySQL Connector/J 8.0.32 或更高版本,或者使用 TiDB JDBC(见 TiDB-JDBC 标签)。
有关一个完整的实例应用程序,可参阅使用 TiDB 和 JDBC 构建一个 Java 应用。
Java ORM 框架
注意
Hibernate 当前不支持嵌套事务。
TiDB 从 v6.2.0 版本开始支持 Savepoint。如需在 @Transactional
中使用 Propagation.NESTED
事务传播选项,即 @Transactional(propagation = Propagation.NESTED)
,请确认你的 TiDB 版本为 v6.2.0 或以上。
Hibernate
MyBatis
支持等级:Full
你可以使用 Gradle 或 Maven 获取你的应用程序的所有依赖项,且会帮你下载依赖项的间接依赖,而无需你手动管理复杂的依赖关系。注意,只有 Hibernate 6.0.0.Beta2
及以上版本才支持 TiDB 方言。
如果你使用的是 Maven,请将以下内容添加到你的 <dependencies></dependencies>
:
<dependency> <groupId>org.hibernate.orm</groupId> <artifactId>hibernate-core</artifactId> <version>6.0.0.CR2</version></dependency><dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.49</version></dependency>
如果你使用的是 Gradle
,请将以下内容添加到你的 dependencies
:
implementation 'org.hibernate:hibernate-core:6.0.0.CR2'implementation 'mysql:mysql-connector-java:5.1.49'
有关原生 Java 使用 Hibernate 进行 TiDB 应用程序构建的例子,可参阅 TiDB 和 Java 的简单 CRUD 应用程序 - 使用 Hibernate。
有关 Spring 使用 Spring Data JPA、Hibernate 进行 TiDB 应用程序构建的例子,可参阅使用 Spring Boot 构建 TiDB 应用程序。
额外的,你需要在 Hibernate 配置文件中指定 TiDB 方言 org.hibernate.dialect.TiDBDialect
,此方言在 Hibernate 6.0.0.Beta2
以上才可支持。若你无法升级 Hibernate 版本,那么请你直接使用 MySQL 5.7 的方言 org.hibernate.dialect.MySQL57Dialect
。但这可能造成不可预料的使用结果,及部分 TiDB 特有特性的缺失,如:序列等。
Java 客户端负载均衡
tidb-loadbalance
支持等级:Full
tidb-loadbalance 是应用端的负载均衡组件。通过 tidb-loadbalance,你可以实现自动维护 TiDB server 的节点信息,根据节点信息使用 tidb-loadbalance 策略在客户端分发 JDBC 连接。客户端应用与 TiDB server 之间使用 JDBC 直连,性能高于使用负载均衡组件。
目前 tidb-loadbalance 已实现轮询、随机、权重等负载均衡策略。
注意
tidb-loadbalance 需配合 mysql-connector-j 一起使用。
如果你使用的是 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 驱动程序即可使用。
有关一个完整的实例应用程序,可参阅使用 TiDB 和 go-sql-driver/mysql 构建一个 Golang 应用。
Golang ORM 框架
GORM
支持等级:Full
GORM 是一个流行的 Golang 的 ORM 框架,你可以使用 go get
获取你的应用程序的所有依赖项。
go get -u gorm.io/gorm go get -u gorm.io/driver/mysql
使用 GORM 进行 TiDB 应用程序构建的例子,可参阅 TiDB 和 Golang 的简单 CRUD 应用程序 - 使用 GORM。
Python
本节介绍 Python 语言的 Driver 及 ORM 的使用方式。
Python Drivers
支持等级:Compatible
按照 PyMySQL 文档中的说明下载并配置驱动程序即可使用。建议使用 1.0.2 及以上版本。
使用 PyMySQL 构建 TiDB 应用程序的例子,可参阅 TiDB 和 Python 的简单 CRUD 应用程序 - 使用 PyMySQL。
Python ORM 框架
支持等级:Compatible
Django 是一个流行的 Python 的开发框架,你可以使用 pip install Django==3.2.16 django-tidb>=3.0.0
获取你的应用程序的所有依赖项。建议使用 Django 3.2.16 及以上版本。
使用 Django 构建 TiDB 应用程序的例子,可参阅使用 Django 构建 TiDB 应用程序。
以上就是小编为大家整理的关于Java 语言的 Driver 及 ORM 的使用方式的相关内容。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。