Java 语言的 Driver 及 ORM 的使用方式

知梧 1104 2023-06-21

本文关于Java 语言的 Driver 及 ORM 的使用方式。

Java 语言的 Driver 及 ORM 的使用方式

Java Drivers

支持等级: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'

额外的,你需要在 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小时内删除侵权内容。

上一篇:如何使用 TiDB 和 Java 构造简单的 CRUD 应用程序?
下一篇:如何配置连接池与连接参数
相关文章