首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >六、SpringBoot集成Mybatis

六、SpringBoot集成Mybatis

作者头像
程序员三明治
发布2025-12-18 19:56:29
发布2025-12-18 19:56:29
880
举报
文章被收录于专栏:码力up码力up

Mybatis是什么?

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。

MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

Mybatis配置 

代码语言:javascript
复制
# 配置mybatis实体和xml映射
mybatis:
  # 这里的classpath对应的就是resources目录
  mapper-locations: classpath:mapper/*.xml
  configuration:
    # 配置日志
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    map-underscore-to-camel-case: true

举例:

驼峰:departmentId

下划线:department_id

xml文件的基本格式

代码语言:javascript
复制
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="">

</mapper>

namespace对应的就mapper的接口的全限定类名,方法名对应<select>或<update>的id

xml和接口是一一对应的

那Spring如何知道mapper接口的呢?

需要告诉springboot如何扫描mapper包,把他注册为Spring中的bean,这样就可以在Serivice中自动注入

并且创建Service并且标注为spring中的bean 

一次数据请求的全流程

接口传参的方式

@PathVariable

 @RequestParam

可以看到路径上用的是? &拼接参数

传递多个参数

对象参数

实现分页查询

引入pageHelper插件

代码语言:javascript
复制
<dependency>
  <groupId>com.github.pagehelper</groupId>
  <artifactId>pagehelper-spring-boot-starter</artifactId>
  <version>1.4.6</version>
  <exclusions>
    <exclusion>
      <artifactId>mybatis</artifactId>
      <groupId>mybatis</groupId>
    </exclusion>
  </exclusions>
</dependency>

在service通过三行代码实现分页查询 

代码语言:javascript
复制
public PageInfo<Employee> selectPage(Integer pageNum, Integer pageSize) {
    PageHelper.startPage(pageNum, pageSize);
    List<Employee> list = employeeMapper.selectAll();
    return PageInfo.of(list);
}

编写分页接口

代码语言:javascript
复制
@GetMapping("/selectPage")
public Result selectPage(@RequestParam(defaultValue = "1") Integer pageNum,
                         @RequestParam(defaultValue = "10") Integer pageSize) {
    PageInfo<Employee> pageInfo = employeeService.selectPage(pageNum, pageSize);
    return Result.success(pageInfo);

}

使用mybatis进行增删改查

get查询操作

post新增操作

@RequestBody可以把前端传来的json字符串映射成java的对象或者数组

mybatis里面写sql使用下划线,涉及到绑定java对象值,就写驼峰

代码语言:javascript
复制
<insert id="add" parameterType="org.example.entity.Employee">
  insert into employee(name,no,description,sex,department_id) values(#{name},#{no},#{description},#{sex},#{departmentId})
</insert>
代码语言:javascript
复制
/**
 * 添加数据
 */
@PostMapping("/add")
public Result add(@RequestBody Employee employee) {
    employeeService.add(employee);
    return Result.success();
}

 @RequestBody表示接收的是一个json对象,否则会抛出异常

put修改操作

代码语言:javascript
复制
<update id="updateById" parameterType="org.example.entity.Employee">
  update employee set name = #{name},no = #{no},description = #{description},sex = #{sex},department_id = #{departmentId} where id = #{id}
</update>
代码语言:javascript
复制
/**
* 更新数据
*/
@PutMapping("/update")
public Result update(@RequestBody Employee employee) {
    employeeService.update(employee);
    return Result.success();
}

一定要有id,否则更新的是空数据

delete删除操作

代码语言:javascript
复制
/**
 * 删除数据
 */
@DeleteMapping("/delete/{id}")
public Result delete(@PathVariable Integer id) {
    employeeService.delete(id);
    return Result.success();
}
代码语言:javascript
复制
<delete id="deleteById">
   delete from employee where id = #{id}
</delete>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-07-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Mybatis是什么?
  • Mybatis配置 
  • xml文件的基本格式
  • 那Spring如何知道mapper接口的呢?
  • 一次数据请求的全流程
  • 接口传参的方式
    • @PathVariable
    •  @RequestParam
  • 实现分页查询
    • 引入pageHelper插件
    • 在service通过三行代码实现分页查询 
    • 编写分页接口
  • 使用mybatis进行增删改查
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档