创建名为springboot_mybatis的新module,过程参考3.1节

6.1、引入相关依赖

注意:虽然本文使用的是 spring boot 2.7.18 和 MySQL 5.7 ,但是出于可移植性、可扩展性和兼容性方面的考虑,

druid 的启动器使用的是 spring boot 3 版本的,MySQL 的驱动使用的是 MySQL 8 版本的。

        <!-- jdbc启动器的依赖(包括 jdbctemplate 和事务相关的依赖和配置)-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency> <!-- druid启动器的依赖 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-3-starter</artifactId>
<version>1.2.20</version>
</dependency> <!-- MySQL驱动的依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.28</version>
</dependency> <!-- Mybatis启动器的依赖-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.1</version>
</dependency>

6.2、创建实体类

package online.liaojy.pojo;

import java.io.Serializable;

/**
* @author liaojy
* @date 2023/12/22 - 6:18
*/
public class Employee implements Serializable { private Integer empId;
private String empName;
private Integer age;
private String sex;
private String email; public Employee() {
} public Employee(Integer empId, String empName, Integer age, String sex, String email) {
this.empId = empId;
this.empName = empName;
this.age = age;
this.sex = sex;
this.email = email;
} public Integer getEmpId() {
return empId;
} public void setEmpId(Integer empId) {
this.empId = empId;
} public String getEmpName() {
return empName;
} public void setEmpName(String empName) {
this.empName = empName;
} public Integer getAge() {
return age;
} public void setAge(Integer age) {
this.age = age;
} public String getSex() {
return sex;
} public void setSex(String sex) {
this.sex = sex;
} public String getEmail() {
return email;
} public void setEmail(String email) {
this.email = email;
} @Override
public String toString() {
return "Employee{" +
"empId=" + empId +
", empName='" + empName + '\'' +
", age=" + age +
", sex='" + sex + '\'' +
", email='" + email + '\'' +
'}';
} }

6.3、创建mapper接口

package online.liaojy.mapper;

import online.liaojy.pojo.Employee;

import java.util.List;

/**
* @author liaojy
* @date 2023/12/22 - 6:27
*/
public interface EmployeeMapper { List<Employee> getAllEmployee(); }

6.4、创建mapper映射文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="online.liaojy.mapper.EmployeeMapper"> <select id="getAllEmployee" resultType="employee">
select * from t_emp
</select> </mapper>

6.5、配置druid和mybatis相关参数


# druid配置: # 连接池类型
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
# 数据库驱动名称
spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver
# 数据库url
spring.datasource.druid.url=jdbc:mysql://localhost:3306/ssm?characterEncoding=utf-8
# 数据库用户名
spring.datasource.druid.username=root
# 数据库密码
spring.datasource.druid.password=root # mybatis配置: # 配置类型别名所对应的包
mybatis.type-aliases-package=online.liaojy.pojo
# 配置mapper映射文件所在的位置
mybatis.mapper-locations=classpath:/mappers/*.xml
# 配置数据库字段的下划线转实体类属性的驼峰
mybatis.configuration.map-underscore-to-camel-case=true
# 配置日志工具类
mybatis.configuration.log-impl=org.apache.ibatis.logging.slf4j.Slf4jImpl

6.6、使用注解扫描mapper接口

注意:@MapperScan 注解的作用是将指定位置的 mapper 接口生成对应的代理对象并加载进ioc容器中,

此外,在对应的 mapper 接口添加 @Mapper 注解也能实现同样的效果。

@MapperScan("online.liaojy.mapper")

6.7、使用mapper接口查询数据

注意:在编译阶段,idea 可能会提示(误报)找不到 EmployeeMapper 类型的 bean 。

    @Autowired
private EmployeeMapper employeeMapper; @RequestMapping("/getAllEmployee")
public List<Employee> getAllEmployee(){
List<Employee> employeeList = employeeMapper.getAllEmployee();
return employeeList;
}

6.8、测试效果

6、SpringBoot2之整合Mybatis的更多相关文章

  1. SpringBoot2.0应用(五):SpringBoot2.0整合MyBatis

    如何整合MyBatis 1.pom依赖 <dependency> <groupId>org.mybatis.spring.boot</groupId> <ar ...

  2. springboot2.X整合mybatis

    github地址:https://github.com/BenchChen/springboot 1) 创建springboot-maven项目,并修改pom文件 <?xml version=& ...

  3. SpringBoot2.0整合mybatis、shiro、redis实现基于数据库权限管理系统

    转自https://blog.csdn.net/poorcoder_/article/details/71374002 本文主要介绍使用SpringBoot与shiro实现基于数据库的细粒度动态权限管 ...

  4. SpringBoot2.0之四 简单整合MyBatis

    从最开始的SSH(Struts+Spring+Hibernate),到后来的SMM(SpringMVC+Spring+MyBatis),到目前的S(SpringBoot),随着框架的不断更新换代,也为 ...

  5. SpringBoot2.0 基础案例(10):整合Mybatis框架,集成分页助手插件

    一.Mybatis框架 1.mybatis简介 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获 ...

  6. springboot学习入门简易版八---springboot2.0多环境配置、整合mybatis mysql8+(19-20)

    2.11 SpringBoot多环境配置(19)  application.properties中配置 Spring.profiles.active=prd 配置环境: Application-dev ...

  7. Spring Boot 鉴权之—— springboot2.0.4+mybatis 整合的完整用例

    自上一篇文章的基础上,Spring Boot 鉴权之—— JWT 鉴权我做了一波springboot2.0.4+mybatis 的整合. 参考文章: Spring Boot+Spring Securi ...

  8. 【SpringBoot】息队列介绍和SpringBoot2.x整合RockketMQ、ActiveMQ

    ========================13.消息队列介绍和SpringBoot2.x整合RockketMQ.ActiveMQ ======================= 1.JMS介绍和 ...

  9. 【SpringBoot系列1】SpringBoot整合MyBatis

    前言: 一直看网上说SpringBoot是解锁你的配置烦恼,一种超级快速开发的框架.一直挺想学的,正好最近也有时间,就学了下 这个是SpringBoot整合MyBatis的一个教程,用了阿里的drui ...

  10. SpringBoot31 整合SpringJDBC、整合MyBatis、利用AOP实现多数据源

    一.整合SpringJDBC 1  JDBC JDBC(Java Data Base Connectivity,Java 数据库连接)是一种用于执行 SQL 语句的 Java API,可以为多种关系数 ...

随机推荐

  1. python-一种去掉前后缀获取子串的方法

    假设有一个字符串,其数据组成方式为:"mode_id1_str_id2",其中id1和id2为任意个数的数字,若存在mode,则id1必然也存在,否则都不存在:id2可有可没有. ...

  2. 重写学习 localStorage 与 sessionStorage

    localStorage 与 sessionStorage localStorage 与 sessionStorage 很多小伙伴对它们俩都很熟悉了: 最熟悉的莫过下面这2条 1,localStora ...

  3. react 数据请求分层

    封装一个接口请求类 数据模型 请求uri配置设置 数据统一存储于redux中,在本项目中创建一个store目录,此目录中就是redux仓库源 定义仓库入口 reducer methods方法 acti ...

  4. 2024 Web 新特性 - 使用 Popover API 创建弹窗

    Popover API 为开发者提供了一种声明式的方式来创建各种类型的弹窗.目前已在所有三大浏览器引擎中可用,并正式成为 Baseline 2024 的一部分. 一直以来,我们在实现弹出式菜单.提示框 ...

  5. 小米 红米 MIUI 重新打开(开启)蓝牙耳机电量弹窗

    原本关闭了下拉通知栏,显示耳机电量的窗口.想重新开开启. 解决方法: 1.确保小爱同学开了通知权限. 2.在蓝牙-高级设置里-开启"小米快连" 3.手机是解锁状态(非锁屏),耳机需 ...

  6. LLM应用实战:当图谱问答(KBQA)集成大模型(三)

    1. 背景 最近比较忙(也有点茫),本qiang~想切入多模态大模型领域,所以一直在潜心研读中... 本次的更新内容主要是响应图谱问答集成LLM项目中反馈问题的优化总结,对KBQA集成LLM不熟悉的客 ...

  7. babel 基础概念 & 从零到一写一个 babel 插件

    babel 基础概念 简单来说,做语法转换兼容的, 复杂一点的说,babel可以将我们写的 ES6+ 的Javascript语法转换为向后兼容的语法,以便能够在旧版本的浏览器或者其他环境运行. bab ...

  8. 机器学习策略篇:详解清除标注错误的数据(Cleaning up Incorrectly labeled data)

    清除标注错误的数据 监督学习问题的数据由输入\(x\)和输出标签 \(y\) 构成,如果观察一下的数据,并发现有些输出标签 \(y\) 是错的.的数据有些标签是错的,是否值得花时间去修正这些标签呢? ...

  9. 将html页面转成pdf下载保存(html2canvas + jspdf或者Print调出打印功能导出pdf)

    方案1:html2canvas + jspdf (缺点:清晰度不高) 安装插件: 亲测可用 yarn add html2canvas yarn add jspdf import html2canvas ...

  10. 【Java异常】Variable used in lambda expression should be final or effectively final

    [Java异常]Variable used in lambda expression should be final or effectively final 从字面上来理解这句话,意思是:*lamb ...