SpringBoot--整合MyBatis(XML方式)

落日映苍穹つ 2021-08-14 00:18 585阅读 0赞

整合MyBatis(XML方式)

  1. 添加MySQL 连接驱动依赖、SpringBoot Mybatis 依赖

完整pom.xml文件如下:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>com.example</groupId>
  5. <artifactId>demo</artifactId>
  6. <version>1.0.0</version>
  7. <packaging>jar</packaging>
  8. <name>hello</name>
  9. <description>Demo project for Spring Boot</description>
  10. <!--版本信息-->
  11. <properties>
  12. <mybatis-spring-boot>1.3.0</mybatis-spring-boot>
  13. <mysql-connector>5.1.39</mysql-connector>
  14. </properties>
  15. <!-- SpringBoot启动父依赖 -->
  16. <parent>
  17. <groupId>org.springframework.boot</groupId>
  18. <artifactId>spring-boot-starter-parent</artifactId>
  19. <version>2.1.1.RELEASE</version>
  20. <relativePath/> <!-- lookup parent from repository -->
  21. </parent>
  22. <dependencies>
  23. <!-- Spring Boot Web 依赖 -->
  24. <dependency>
  25. <groupId>org.springframework.boot</groupId>
  26. <artifactId>spring-boot-starter-web</artifactId>
  27. </dependency>
  28. <!-- MySQL 连接驱动依赖 -->
  29. <dependency>
  30. <groupId>mysql</groupId>
  31. <artifactId>mysql-connector-java</artifactId>
  32. <version>${mysql-connector}</version>
  33. </dependency>
  34. <!-- SpringBoot Mybatis 依赖 -->
  35. <dependency>
  36. <groupId>org.mybatis.spring.boot</groupId>
  37. <artifactId>mybatis-spring-boot-starter</artifactId>
  38. <version>${mybatis-spring-boot}</version>
  39. </dependency>
  40. <!-- lombok依赖-->
  41. <dependency>
  42. <groupId>org.projectlombok</groupId>
  43. <artifactId>lombok</artifactId>
  44. </dependency>
  45. <!-- logback 依赖-->
  46. <dependency>
  47. <groupId>ch.qos.logback</groupId>
  48. <artifactId>logback-classic</artifactId>
  49. </dependency>
  50. <!--Slf4j 依赖-->
  51. <dependency>
  52. <groupId>org.slf4j</groupId>
  53. <artifactId>jcl-over-slf4j</artifactId>
  54. </dependency>
  55. </dependencies>
  56. <!-- 如果需要将mapper.xml放在java包下,需添加如下配置 -->
  57. <!-- <build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> <resource> <directory>src/main/resources</directory> </resource> </resources> </build> -->
  58. </project>

整合MyBatis的核心依赖MyBatis-Spring-Boot-Starter提供:

  • 自动检测现有的DataSource
  • 将创建并注册SqlSessionFactory的实例,该实例使用SqlSessionFactoryBean将该DataSource作为输入进行传递
  • 将创建并注册从SqlSessionFactory中获取的SqlSessionTemplate的实例。
  • 自动扫描您的mappers,将它们链接到SqlSessionTemplate并将其注册到Spring上下文,以便将它们注入到您的bean中。

因此,引入该Starter之后,只需要定义一个DataSource即可(application.properties中可配置),它会自动创建使用该DataSource的SqlSessionFactoryBean以及SqlSessionTemplate。会自动扫描你的Mappers,连接到SqlSessionTemplate,并注册到Spring上下文中。

配置application.yml文件

  • 配置数据库连接信息(数据源)

    spring:

    1. #数据源

    datasource:

    1. url: jdbc:mysql://localhost:3306/springbootdb??useUnicode=true&characterEncoding=UTF-8
    2. username: root
    3. password: 123
    4. driver-class-name: com.mysql.jdbc.Driver
  • 配置mybatis

    mybatis配置

    mybatis:
    typeAliasesPackage: com.example.mybaitsxml.dao.entity
    mapperLocations: classpath:mapper/*.xml #configLocation: classpath:/mybatis-config.xml

注:通常,若mybatis配置信息较少,只是针对基本配置无需复杂配置,则只需在application.yml文件中配置即可,否则最好配置在 mybatis-config.xml中。

代码实现

工程结构:
在这里插入图片描述

  • controller层

    @Slf4j
    @RestController
    @RequestMapping(“/web”)
    public class UserController {

    1. @Autowired
    2. private UserService userService;
    3. @GetMapping("/queryAllUsers")
    4. public List<User> queryAllUsers(){
    5. return userService.queryAllUsers();
    6. }

    }

  • service层(实现)

    @Slf4j
    @Service
    public class UserServiceImpl implements UserService {

    1. @Autowired
    2. private UserMapper userMapper;
    3. @Override
    4. public List<User> queryAllUsers() {
    5. log.info("/queryAllUsers start...");
    6. return userMapper.queryAllUsers();
    7. }

    }

  • dao层

dao层分为数据库实体类(entity)和数据库操作mapper接口(mapper)

entity:

  1. @Data
  2. public class User {
  3. private String name ;
  4. private String sex;
  5. private Integer age;
  6. private Integer classNo;
  7. }

mapper:

  1. public interface UserMapper {
  2. List<User> queryAllUsers();
  3. }
  • mapper.xml实现

    <?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“ >










测试:
在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,585人围观)

还没有评论,来说两句吧...

相关阅读