01 MyBatis+Spring Boot

Wu Jun 2019-01-05 17:03:29
07 数据库 > 02 MyBatis

简介


配置


Maven 引用
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.3.2</version>
</dependency>
配置文件

在application.properties或application.yml等配置文件,配置spring数据源,和mybatis配置属性

mybatis.type-aliases-package=com.test.entity

spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/xxx
spring.datasource.username = root
spring.datasource.password = root

MyBatis-Spring-Boot-Starter 会自动检测数据源,创建 sqlSessionFactory 并将数据源注入,再由sqlSessionFactory 创建并注册 SqlSessionTemplate ,自动扫描Mappers并将其与 SqlSessionTemplate 关联。无需再手动管理SqlSession
当然如果有个性需求(例如提交级别)也可单独再写sqlSessionFactory相关调用。

扫描Mapper

MyBatis-Spring-Boot-Starter 会默认扫描被 @Mapper 注解的Mappers,也可使用 @MapperScan 注解指定扫描范围,就不用挨个加注解了

@SpringBootApplication
@MapperScan("com.text.mapper")
public class Application {

	public static void main(String[] args) {
		SpringApplication.run(Application .class, args);
	}
}

注解使用


简单sql可直接在mapper上使用注解,不用再写xml

@Mapper
public interface CityMapper {

    @Select("SELECT * FROM CITY WHERE state = #{state}")
    City findByState(@Param("state") String state);

}

可以直接掉mapper接口

结合传统


添加传统配置文件

mybatis.config-locations=classpath:mybatis/mybatis-config.xml
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml

添加mapper的xml映射文件,来写复杂sql
不再赘述