6、SpringBoot2之整合Mybatis

打印 上一主题 下一主题

主题 876|帖子 876|积分 2628

创建名为springboot_mybatis的新module,过程参考3.1节
6.1、引入相关依赖


注意:虽然本文使用的是 spring boot 2.7.18 和 MySQL 5.7 ,但是出于可移植性、可扩展性和兼容性方面的考虑,
druid 的启动器使用的是 spring boot 3 版本的,MySQL 的驱动使用的是 MySQL 8 版本的。
  1.         
  2.         <dependency>
  3.             <groupId>org.springframework.boot</groupId>
  4.             <artifactId>spring-boot-starter-jdbc</artifactId>
  5.         </dependency>
  6.         
  7.         <dependency>
  8.             <groupId>com.alibaba</groupId>
  9.             <artifactId>druid-spring-boot-3-starter</artifactId>
  10.             <version>1.2.20</version>
  11.         </dependency>
  12.         
  13.         <dependency>
  14.             <groupId>mysql</groupId>
  15.             <artifactId>mysql-connector-java</artifactId>
  16.             <version>8.0.28</version>
  17.         </dependency>
  18.         
  19.         <dependency>
  20.             <groupId>org.mybatis.spring.boot</groupId>
  21.             <artifactId>mybatis-spring-boot-starter</artifactId>
  22.             <version>2.0.1</version>
  23.         </dependency>
复制代码
6.2、创建实体类

  1. package online.liaojy.pojo;
  2. import java.io.Serializable;
  3. /**
  4. * @author liaojy
  5. * @date 2023/12/22 - 6:18
  6. */
  7. public class Employee implements Serializable {
  8.     private Integer empId;
  9.     private String empName;
  10.     private Integer age;
  11.     private String sex;
  12.     private String email;
  13.     public Employee() {
  14.     }
  15.     public Employee(Integer empId, String empName, Integer age, String sex, String email) {
  16.         this.empId = empId;
  17.         this.empName = empName;
  18.         this.age = age;
  19.         this.sex = sex;
  20.         this.email = email;
  21.     }
  22.     public Integer getEmpId() {
  23.         return empId;
  24.     }
  25.     public void setEmpId(Integer empId) {
  26.         this.empId = empId;
  27.     }
  28.     public String getEmpName() {
  29.         return empName;
  30.     }
  31.     public void setEmpName(String empName) {
  32.         this.empName = empName;
  33.     }
  34.     public Integer getAge() {
  35.         return age;
  36.     }
  37.     public void setAge(Integer age) {
  38.         this.age = age;
  39.     }
  40.     public String getSex() {
  41.         return sex;
  42.     }
  43.     public void setSex(String sex) {
  44.         this.sex = sex;
  45.     }
  46.     public String getEmail() {
  47.         return email;
  48.     }
  49.     public void setEmail(String email) {
  50.         this.email = email;
  51.     }
  52.     @Override
  53.     public String toString() {
  54.         return "Employee{" +
  55.                 "empId=" + empId +
  56.                 ", empName='" + empName + '\'' +
  57.                 ", age=" + age +
  58.                 ", sex='" + sex + '\'' +
  59.                 ", email='" + email + '\'' +
  60.                 '}';
  61.     }
  62. }
复制代码
6.3、创建mapper接口

  1. package online.liaojy.mapper;
  2. import online.liaojy.pojo.Employee;
  3. import java.util.List;
  4. /**
  5. * @author liaojy
  6. * @date 2023/12/22 - 6:27
  7. */
  8. public interface EmployeeMapper {
  9.     List<Employee> getAllEmployee();
  10. }
复制代码
6.4、创建mapper映射文件

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3.         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4.         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="online.liaojy.mapper.EmployeeMapper">
  6.     <select id="getAllEmployee" resultType="employee">
  7.         select * from t_emp
  8.     </select>
  9. </mapper>
复制代码
6.5、配置druid和mybatis相关参数

  1. # druid配置:
  2. # 连接池类型
  3. spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
  4. # 数据库驱动名称
  5. spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver
  6. # 数据库url
  7. spring.datasource.druid.url=jdbc:mysql://localhost:3306/ssm?characterEncoding=utf-8
  8. # 数据库用户名
  9. spring.datasource.druid.username=root
  10. # 数据库密码
  11. spring.datasource.druid.password=root
  12. # mybatis配置:
  13. # 配置类型别名所对应的包
  14. mybatis.type-aliases-package=online.liaojy.pojo
  15. # 配置mapper映射文件所在的位置
  16. mybatis.mapper-locations=classpath:/mappers/*.xml
  17. # 配置数据库字段的下划线转实体类属性的驼峰
  18. mybatis.configuration.map-underscore-to-camel-case=true
  19. # 配置日志工具类
  20. mybatis.configuration.log-impl=org.apache.ibatis.logging.slf4j.Slf4jImpl
复制代码
6.6、使用注解扫描mapper接口


注意:@MapperScan 注解的作用是将指定位置的 mapper 接口生成对应的代理对象并加载进ioc容器中,
此外,在对应的 mapper 接口添加 @Mapper 注解也能实现同样的效果。
  1. @MapperScan("online.liaojy.mapper")
复制代码
6.7、使用mapper接口查询数据


注意:在编译阶段,idea 可能会提示(误报)找不到 EmployeeMapper 类型的 bean 。
  1.     @Autowired
  2.     private EmployeeMapper employeeMapper;
  3.     @RequestMapping("/getAllEmployee")
  4.     public List<Employee> getAllEmployee(){
  5.         List<Employee> employeeList = employeeMapper.getAllEmployee();
  6.         return employeeList;
  7.     }
复制代码
6.8、测试效果



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

耶耶耶耶耶

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表