简介
- MyBatis 传统方法使用 MyBatis ,有 MyBatis 官网中文文档 。
- Generator 传统方法比较繁琐,因而 MyBatis 推出了 MyBatis Generator 工具,可自动生成实体类、配置文件和dao层代码,以减轻一部分开发量。
- Spring Boot + MyBatis 最便捷还是 MyBatis-Spring-Boot-Starter ,通过 Spring Boot 使用 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
不再赘述