SpringBoot与Mybatis集成

    |     2017年6月16日   |   springboot   |     0 条评论   |    2503

在 Spring Boot 里接 MyBatis,核心就五步:starter 依赖、实体 / Mapper / XML、application.yml 数据源、Mapper 扫描、再写一个登录 Controller 验证。下面按原文工程 com.ittx.java1608.sbdemo2 走一遍。

包名里的 mybaits 是原文目录拼写,配置路径保持原样,避免对不上扫描。

一、引入依赖

<!-- mybatis/spring 包 -->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.2.0</version>
</dependency>

<!-- mysql 数据驱动 -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

二、Bean、接口和映射文件

实体、Dao 接口和 Mapper XML 可用插件生成。工程结构如下:

mybaits

三、application.yml:数据源和 Mapper 扫描

spring:
  mvc:
    view:
     prefix: /WEB-INF/views/
     suffix: .jsp
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/springboot?characterEncoding=utf8&useSSL=true
    username: root
    password: b123
mybatis:
  mapper-locations: classpath:com/ittx/java1608/sbdemo2/mapping/*.xml

# springboot 中配置 mybatis 日志输出
logging:
    level:
        com.ittx.java1608.sbdemo2.dao: TRACE
配置项 作用
spring.datasource.* JDBC 连接 MySQL
mybatis.mapper-locations 扫描 mapping 目录下的 XML
logging.level...dao: TRACE 控制台打印 Mapper SQL

四、MapperScannerConfigurer

相当于传统 xml 里的 MapperScannerConfigurer:告诉 Spring 去哪个包找 Dao 接口,并绑到 sqlSessionFactory。

/**
 * MyBatis 扫描接口
 *  <!-- DAO 接口所在包名,Spring 会自动查找其下的类 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.ittx.java1608.sbdemo2.dao" />
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
    </bean>
 */
@Configuration
public class MyBatisMapperScannerConfig {

    @Bean
    public MapperScannerConfigurer mapperScannerConfigurer() {
        MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
        mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactory");
        mapperScannerConfigurer.setBasePackage("com.ittx.java1608.sbdemo2.dao");
        return mapperScannerConfigurer;
    }
}

五、用登录接口验证

配置完成后,注入 UserMapper 做登录校验:

@Controller
public class LoginController {
    @Autowired
    private UserMapper userMapper;

    @RequestMapping("/login")
    public String login() {
        return "login";
    }

    @RequestMapping("/login_submit")
    public String loginSubmit(String username, String password, Model model) {
        User user = userMapper.checkLogin(username, password);
        if (user != null) {
            model.addAttribute("message", "登录成功!");
        } else {
            model.addAttribute("message", "用户名或密码错误!");
        }
        return "login";
    }
}

一句话总结:Spring Boot 集成 MyBatis:starter + 数据源 yml + mapper-locations + 接口包扫描;用一次真实查询(例如登录)确认 SQL 能打出来、结果能封装。

转载请注明来源:SpringBoot与Mybatis集成
本文链接地址:https://ai.zhousir.top/?p=2001
回复 取消