spring boot 多对多关系中添加数据的接口_SpringBoot基础教程4-1-2 使用Mybatis操作数据库...

1 概述

为什么选择Mybatis,一个很重要的原因是它,将封装与开放的完美结合,高效的生成增删改查的同时,又能满足复杂的SQL场景,下面我们详细介绍,SpringBoot如何快速接入Mybatis实现数据库的增删改查。

2 添加依赖

org.springframework.boot spring-boot-starter-web org.projectlombok lombok 1.16.20providedmysql mysql-connector-java runtimeorg.mybatis.spring.boot mybatis-spring-boot-starter 1.3.2com.github.pagehelper pagehelper-spring-boot-starter 1.2.5com.alibaba druid-spring-boot-starter 1.1.9org.springframework.boot spring-boot-starter-test 
  • pagehelper处理查询分页
  • druid作为数据库连接池
  • mybatis-spring-boot-starter,mybatis官方提供的starter
添加mybatis generator代码自动生成插件
org.mybatis.generator mybatis-generator-maven-plugin 1.3.2${basedir}/src/main/resources/generator/generatorConfig.xmltruetrue

2 mybatis generator配置文件解析

<?xml version="1.0" encoding="UTF-8"?> 
如何使用该插件?
  • 新建数据库与表
  • 修改上面配置文件,使用你本地环境
  • 运行插件
3fd31394fe7cc3b99f114125677f45f1.png

3 修改application.yml配置文件

数据源配置
spring: datasource: name: mysql_test type: com.alibaba.druid.pool.DruidDataSource #druid相关配置 druid: #监控统计拦截的filters filters: stat driver-class-name: com.mysql.jdbc.Driver #基本属性 url: jdbc:mysql://127.0.0.1:3306/springboot?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true username: root password: 123456 #配置初始化大小/最小/最大 initial-size: 1 min-idle: 1 max-active: 20 #获取连接等待超时时间 max-wait: 60000 #间隔多久进行一次检测,检测需要关闭的空闲连接 time-between-eviction-runs-millis: 60000 #一个连接在池中最小生存的时间 min-evictable-idle-time-millis: 300000 validation-query: SELECT 'x' test-while-idle: true test-on-borrow: false test-on-return: false #打开PSCache,并指定每个连接上PSCache的大小。oracle设为true,mysql设为false。分库分表较多推荐设置为false pool-prepared-statements: false max-pool-prepared-statement-per-connection-size: 20
mybatis配置
mybatis: #Mapper.xml所在的位置 mapper-locations: classpath:mapping/*.xml #entity扫描的包名 type-aliases-package: com.mkeeper.entity
分页配置
#pagehelper分页插件配置pagehelper: helperDialect: mysql reasonable: true supportMethodsArguments: true params: count=countSql returnPageInfo: check

4 分页查询和批量插入

完成上述配置以及自动生成代码后,代码结构大致如下:

可以参考源码:https://github.com/Mkeeper6/SpringBoot-About

23cb16ef41286d40430d98a7967f8cb2.png
这里我们不详细介绍自动生成的基础增删改查功能;我们详细介绍,分页查询和批量插入。

4.1 分页查询

修改 UserMapper,添加接口
 Page findByPage();
修改UserMapper.xml,添加sql
 select  from t_user
重点,修改UserService.java, UserServiceImpl.java
Page findByPage(int pageNum, int pageSize);/* * 这个方法中用到了我们开头配置依赖的分页插件pagehelper * 很简单,只需要在service层传入参数,然后将参数传递给一个插件的一个静态方法即可; * pageNum 开始页数 * pageSize 每页显示的数据条数 * */ @Override public Page findByPage(int pageNum, int pageSize) { //将参数传给这个方法就可以实现物理分页了,非常简单。 //只要这里设置,就物理分页,返回对应分页数据 PageHelper.startPage(pageNum, pageSize); return userMapper.findByPage(); }
最后修改UserController.java,测试分页效果
@GetMapping("/all/{pageNum}/{pageSize}") public R findAllUser(@PathVariable("pageNum") int pageNum, @PathVariable("pageSize") int pageSize){ return R.isOk().data(new PageInfo<>(userService.findByPage(pageNum, pageSize))); }

4.2 批量插入

修改 UserMapper,添加接口
 /** * 批量插入 * @param list * @return */ int insertList(List list);
修改UserMapper.xml,添加sql
 insert into t_user (user_id, user_name, password, phone) VALUES 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值