SpringBoot和MyBatis的整合

  1. 创建maven工程,在pom文件导入需要的依赖:
  • spring-boot-starter-web
  • mybatis-spring-boot-starter
  • mysql-connector-java
  • spring-boot-starter-test
  • com.github.pagehelper或pagehelper-spring-boot-starter【分页插件的依赖】
  • spring-boot-devtools【热启动器插件的依赖】
  1. 创建项目的基本结构:domain、controller、service、mapper和springboot的入口类等

  2. 配置application.yml配置文件,配置端口号、数据源、mybatis 别名

    server:
      port: 80
    #给指定包配置别名【springboot不支持通配符,在另外配置java代码才能支持】
    mybatis:
      type-aliases-package: top.onething.ssm.domain
    #不配置此属性时,默认在classpath下与mapper接口的层级结构相同的目录下,一般在resouces下建目录结构
      mapper-locations: classpath:mapper/*Mapper.xml
      #当需要xml中配置mybatis时,才需要配置mybtis配置文件的位置
      #config-location: classpath:mybaits-config.xml
      configuration:
        #mybatis日志,在控制台看sql语句
        log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    #连接池的配置
    spring:
      datasource:
        url: jdbc:mysql:///department?useUnicode=true&characterEncoding=utf-8&useSSL=false
        driver-class-name: com.mysql.jdbc.Driver
        username: root
        password: root
    
  3. 创建mpper接口、mapper接口的映射文件

    • 注意:单个mapper接口映射文件的namespace命名空间必须指向该接口【配置完全限定名】
    <mapper namespace="top.onething.ssm.mapper.DeptMapper">
    
  4. springboot的入口类加注解:@MapperScan(basePackages={“top.onething.**.mapper”}),扫描指定包的接口

@SpringBootApplication
@MapperScan(basePackages={"top.onething.**.mapper"})
public class SSMAplication {
    public static void main(String[] args) {
        SpringApplication.run(SSMAplication.class, args);
    }
}
  1. 完成service、Controller层的代码
  2. 实现分页功能【两种实现方式,建议使用方式2】

方式1:pom文件引入的依赖com.github.pagehelper

  • 新建config包,自定义一个配置类,该类打注解@Configuration
  • 在类中创建一个返回类型为PageHelper的方法,该方法打注解@Bean,在方法内部进行分页的相关配置
//方式1不配置PageHelper类的Bean,无法进行分页
@Configuration
public class CustomConfiguration {

    @Bean
    public PageHelper pageHelper(){
        PageHelper pageHelper = new PageHelper();
        Properties properties = new Properties();
        //分页合理化配置
        properties.setProperty("reasonable", "true");
        pageHelper.setProperties(properties);
        return pageHelper;
    }
}

public PageInfo<Dept> selectAll() {
    //配置此代码后进行查询即为分页查询
    PageHelper.startPage(1, 5);
    List<Dept> depts = deptMapper.selectAll();
    PageInfo<Dept> pageInfo = new PageInfo<>(depts,5);
    return pageInfo;
}

方式2:pom文件引入依赖pagehelper-spring-boot-starter

  • 依赖
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.2.5</version>
</dependency>
  • application.yml配置文件中进行配置
pagehelper:
  reasonable: true
  • 配置后,直接进行分页查询
public PageInfo<Dept> selectAll() {
    //配置此代码后进行查询即为分页查询
    PageHelper.startPage(1, 5);
    List<Dept> depts = deptMapper.selectAll();
    PageInfo<Dept> pageInfo = new PageInfo<>(depts,5);
    return pageInfo;
}
上一篇:java.lang.ClassCastException: java.util.ArrayList cannot be cast to com.github.pagehelper.Page page


下一篇:spring boot集成mybatis(2) - 使用pagehelper实现分页