SpringBoot与Mybatis集成
周sir |
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 可用插件生成。工程结构如下:

三、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集成
我是周sir,这是我的博客。致力于分享我学会的技术和优秀的文章。微信公众号 “周sir专栏” 欢迎大家关注。