• 2. SpringBoot整合Mybatis


    本章内容基于SpringBoot入门:https://www.cnblogs.com/forelim/p/15379580.html

    SpringBoot整合Mybatis

    1. 导入依赖

      <!-- mysql -->
      <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <version>8.0.26</version>
      </dependency>
      <!-- mybatis启动器 -->
      <dependency>
          <groupId>org.mybatis.spring.boot</groupId>
          <artifactId>mybatis-spring-boot-starter</artifactId>
          <version>2.1.3</version>
      </dependency>
      <!-- 测试 -->
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-test</artifactId>
      </dependency>
      <!-- 分页插件 -->
      <dependency>
          <groupId>com.github.pagehelper</groupId>
          <artifactId>pagehelper-spring-boot-starter</artifactId>
          <version>1.3.0</version>
      </dependency>
      
    2. 加载配置 application.yml

      # 端口号
      server:
        port: 8080
      
      # 数据源
      spring:
        datasource:
          # 驱动
          driver-class-name: com.mysql.cj.jdbc.Driver
          # 路径
          url: jdbc:mysql://localhost:3306/demo?useSSL=false&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
          # 用户名
          username: root
          # 密码
          password: mysql
      
      # mybatis配置
      mybatis:
        configuration:
          # 日志
          log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
          # 下划线转驼峰
          map-underscore-to-camel-case: true
        # 别名包
        type-aliases-package: com.demo.entity
        # 映射文件位置
        mapper-locations: classpath:mapper/*.xml
      
      # 分页插件
      pagehelper:
        # 数据库
        helper-dialect: mysql
        # 合理化
        reasonable: true
        # 支持通过方法传递参数
        support-methods-arguments: true
        # 参数
        params: count==countSql
        # 传入0时显示全部数据
        page-size-zero: true
      
    3. Entity & Mapper

      public class Demo {
          private Integer id;
          private String name;
          private Integer age;
      
          public Integer getId() {
              return id;
          }
      
          public void setId(Integer id) {
              this.id = id;
          }
      
          public String getName() {
              return name;
          }
      
          public void setName(String name) {
              this.name = name;
          }
      
          public Integer getAge() {
              return age;
          }
      
          public void setAge(Integer age) {
              this.age = age;
          }
      
      }
      
      import com.demo.entity.Demo;
      import org.apache.ibatis.annotations.Mapper;
      
      import java.util.List;
      
      @Mapper
      // 如果mapper接口过多 可以在主启动类上加上@MapperScan("mapper接口包") 代替 @Mapper注解
      public interface DemoMapper {
          /**
           * 查询全部
           * @return 列表
           */
          List<Demo> list();
      }
      
      <?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="com.demo.mapper.DemoMapper">
          <select id="list" resultType="demo">
              select id, name, age
              from t_demo
          </select>
      </mapper>
      
    4. 测试类

      import com.demo.entity.Demo;
      import com.github.pagehelper.PageHelper;
      import com.github.pagehelper.PageInfo;
      import org.junit.jupiter.api.Test;
      import org.springframework.beans.factory.annotation.Autowired;
      import org.springframework.boot.test.context.SpringBootTest;
      
      import java.util.List;
      
      @SpringBootTest
      public class DemoMapperTest {
      
          /**
           * 自动织入mapper接口
           */
          @Autowired
          private DemoMapper demoMapper;
          @Test
          void list() {
              // 分页
              PageHelper.startPage(1,2);
              // 调用
              List<Demo> list = demoMapper.list();
              // 封装分页对象
              PageInfo<Demo> demoPageInfo = new PageInfo<>(list);
          }
      }
      
    5. 成功!
      image

  • 相关阅读:
    ubuntu
    long long 的输入输出问题
    hdu 4135 a到b的范围中多少数与n互质(容斥)
    hdu4757 可持续化01字典树+LCA
    E
    bzoj4260 求两个不相交的区间各自异或后相加的最大值。
    hdu4638 问一段区间能组成多少段连续的数
    hdu4637 计算俩运动对象的时间交
    hdu4632 回文子序列
    hdu4635 有向点双
  • 原文地址:https://www.cnblogs.com/forelim/p/15381263.html
Copyright © 2020-2023  润新知