如何在mysql中使用r2dbc

  介绍

本篇文章为大家展示了如何在mysql中使用r2dbc,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。


要想使用r2dbc-mysql,我们需要添加如下的maven依赖:

& lt; dependency>   & lt;才能groupId> dev.miku</groupId>   & lt;才能artifactId> r2dbc-mysql</artifactId>   & lt;才能version> 0.8.2.RELEASE</version>   & lt;/dependency>

当然,如果你想使用快照版本的话,可以这样:

& lt; dependency>   & lt;才能groupId> dev.miku</groupId>   & lt;才能artifactId> r2dbc-mysql</artifactId>   & lt;才能version> $ {r2dbc-mysql.version} .BUILD-SNAPSHOT   & lt;/dependency>      & lt; repository>   & lt;才能id> sonatype-snapshots</id>   & lt;才能name> SonaType  Snapshots   & lt;才能url> https://oss.sonatype.org/content/repositories/snapshots</url>   & lt;才能snapshots>   ,,,& lt; enabled> true   & lt;才能/snapshots>   & lt;/repository>

创建connectionFactory

创建connectionFactory的代码实际上使用的r2dbc的标准接口,所以和之前讲到的h3的创建代码基本上是一样的:

//,注意:,,query  string  must  be  URL 编码   ConnectionFactory  ConnectionFactory =, ConnectionFactories.get (   “才能r2dbcs: mysql://根:database-password-in-here@127.0.0.1:3306/r2dbc ?“+   “才能zeroDate=use_round&“+   “才能sslMode=verify_identity&“+   “才能useServerPrepareStatement=true&“+   “才能tlsVersion=TLSv1.3 % 2 ctlsv1.2 % 2 ctlsv1.1&“+   “才能sslCa=% 2 fpath % 2 fto % 2 fmysql % 2 fca.pem&“+   “才能sslKey=% 2 fpath % 2 fto % 2 fmysql % 2 fclient-key.pem&“+   “才能sslCert=% 2 fpath % 2 fto % 2 fmysql % 2 fclient-cert.pem&“+   “才能sslKeyPassword=key-pem-password-in-here"   )//,Creating  a  Mono  using  Project 反应堆   Mono

不同的是connectionfactory传入的参数不同。

我们也支持unix域套接字的格式:

//, Minimum  configuration  for  unix  domain 插座   ConnectionFactory  ConnectionFactory =, ConnectionFactories.get (“r2dbc: mysql://root@unix ? unixSocket=% 2 fpath % 2 fto % 2 fmysql.sock")      Mono

同样的,我们也支持从ConnectionFactoryOptions中创建ConnectionFactory:

ConnectionFactoryOptions  options =, ConnectionFactoryOptions.builder ()   .option才能(司机,“mysql")   .option才能(主机,“127.0.0.1")   .option才能(用户,“root")   .option才能(港口,3306),//,可选的,default  3306   .option才能(密码,“database-password-in-here"),//,可选的,,default 空,,null  means  has  no 密码   .option才能(数据库,,“r2dbc"),//,可选的,,default 空,,null  means  not  specifying 从而数据库   .option才能(CONNECT_TIMEOUT, Duration.ofSeconds(3)),//,可选的,,default  null, null  means  no 超时   .option才能(SSL,,真的),//,可选的,,default  sslMode  is “preferred",, it  will  be  ignore  if  sslMode  is 集   .option才能(Option.valueOf (“sslMode"),“verify_identity"),//,可选的,,default “preferred"   .option才能(Option.valueOf (“sslCa"),“/道路//mysql/ca.pem"),//, required  when  sslMode  is  verify_ca  verify_identity,趁机,default 空,,null  means  has  no  server  CA  cert   .option才能(Option.valueOf (“sslCert"),“/道路//mysql/client-cert.pem"),//,可选的,,default 空,,null  means  has  no  client  cert   .option才能(Option.valueOf (“sslKey"),“/道路//mysql/client-key.pem"),//,可选的,,default 空,,null  means  has  no  client 关键   .option才能(Option.valueOf (“sslKeyPassword"),“key-pem-password-in-here"),//,可选的,,default 空,,null  means  has  no  password  for  client  key (即只“sslKey")   .option才能(Option.valueOf (“tlsVersion"),“TLSv1.3, TLSv1.2, TLSv1.1"),//,可选的,,default  is  auto-selected  by 从而服务器   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

如何在mysql中使用r2dbc