当前位置: 首页 > news >正文

java 非srping 使用r2dbc操作mysql 增删改查代码

要在Java中使用R2DBC操作MySQL,首先需要添加相关依赖。在Maven项目中,可以在pom.xml文件中添加以下依赖:

<dependency><groupId>dev.miku</groupId><artifactId>r2dbc-mysql</artifactId><version>0.8.2.RELEASE</version>
</dependency>

接下来,可以创建一个R2DBC连接池,并使用它来执行数据库操作。以下是一个简单的示例:

import io.r2dbc.spi.ConnectionFactory;
import io.r2dbc.spi.ConnectionFactoryOptions;
import io.r2dbc.spi.ConnectionFactories;
import io.r2dbc.spi.Result;
import io.r2dbc.spi.Row;
import io.r2dbc.spi.RowMetadata;
import reactor.core.publisher.Flux;public class R2DBCExample {public static void main(String[] args) {// 创建连接工厂ConnectionFactory connectionFactory = ConnectionFactories.get("r2dbc:mysql://localhost:3306/testdb?user=root&password=123456");// 创建连接池ConnectionFactoryOptions options = ConnectionFactoryOptions.builder().initialSize(5).maxSize(10).build();ConnectionFactory pooledConnectionFactory = ConnectionFactories.get(connectionFactory, options);// 插入数据pooledConnectionFactory.create().flatMapMany(connection -> connection.createStatement("INSERT INTO users (name, age) VALUES ('张三', 25)").execute()).flatMap(result -> result.getRowsUpdated()).subscribe(System.out::println);// 查询数据pooledConnectionFactory.create().flatMapMany(connection -> connection.createStatement("SELECT * FROM users").execute()).flatMap(result -> result.map((row, metadata) -> row.get("name", String.class))).subscribe(System.out::println);// 更新数据pooledConnectionFactory.create().flatMapMany(connection -> connection.createStatement("UPDATE users SET age = 26 WHERE name = '张三'").execute()).flatMap(result -> result.getRowsUpdated()).subscribe(System.out::println);// 删除数据pooledConnectionFactory.create().flatMapMany(connection -> connection.createStatement("DELETE FROM users WHERE name = '张三'").execute()).flatMap(result -> result.getRowsUpdated()).subscribe(System.out::println);}
}

在这个示例中,我们首先创建了一个MySQL数据库的连接工厂,然后创建了一个连接池。接着,我们使用连接池执行了插入、查询、更新和删除操作。

http://www.lryc.cn/news/382112.html

相关文章:

  • 假冒国企现形记:股权变更视角下的甄别分析
  • Django 使用Apscheduler执行定时任务
  • Shopee API接口:获取搜索栏生成的商品结果列表
  • 选择门店收银系统要考虑哪些方面?美业系统Java源码分享私
  • 智慧养老的养老方式及其技术实现与趋势
  • 思维导图之计算机网络整体框架
  • P7771 【模板】欧拉路径
  • 卷积神经网络(CNN)理解
  • Databend 开源周报第 149 期
  • Hue Hadoop 图形化用户界面 BYD
  • 【经验分享】RT600 serial boot mode测试
  • 七种不同类型测宽仪技术参数 看看哪种能用于您的产线?
  • 【GO】rotatelogs库和sirupsen/logrus库实现日志功能的实践用例
  • Arc2Face - 一张图生成逼真的多风格人脸,本地一键整合包下载
  • swiper 幻灯片
  • Ubuntu 使用Vscode的一些技巧 ROS
  • JS中的三种事件模型
  • 南京邮电大学计算机网络实验二(网络路由器配置RIP协议)
  • 仓颉语言的编译和构建
  • 网络基础-协议
  • 电子设备抗震等级与电子设备震动实验
  • 你还在手动操作仓库?这款 CLI 工具让你效率飙升300%!
  • 未来已来!GPT-5震撼登场,工作与生活面临新变革!
  • 洗地机选购指南,什么品牌最值得购买?2024四大口碑品牌推荐
  • 住宅IP与普通IP的区别
  • 【Java】线程池技术(三)ThreadPoolExecutor 状态与运行源码解析
  • vscode使用内置插件断点调试vue2项目
  • centos7 低版本docker 升级为高版本
  • 了解SD-WAN与传统WAN的区别
  • 技术干货 | AI驱动工程仿真和设计创新