引入依赖
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>
使用MyBatis Generator
添加Maven插件
<plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.7</version> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql.version}</version> </dependency> </dependencies> </plugin>
这里需要加上mysql驱动的依赖,我第一次没有加,然后自动生成就一直报错。
添加配置文件generatorConfig.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <context id="DB2Tables" targetRuntime="MyBatis3"> <commentGenerator> <!-- 是否去除自动生成的注释 true:是 : false:否 --> <property name="suppressAllComments" value="true" /> </commentGenerator> <!--数据库连接信息--> <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/ssmweb?useSSL=false&serverTimezone=UTC" userId="root" password="123456"> </jdbcConnection> <!--是否应强制对DECIMAL和NUMERIC字段使用java.math.BigDecimal--> <javaTypeResolver> <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <!--配置自动生成Model(entity)--> <javaModelGenerator targetPackage="com.example.demo.model" targetProject="E:\intellij_idea\liull\springbootmybatisdemo\src\main\java"> <!--<property name="enableSubPackages" value="true" />--> <property name="trimStrings" value="true" /> </javaModelGenerator> <!--配置自动生成Mapper映射文件--> <sqlMapGenerator targetPackage="mapper" targetProject="E:\intellij_idea\liull\springbootmybatisdemo\src\main\resources"> </sqlMapGenerator> <!--配置自动生成dao--> <javaClientGenerator type="XMLMAPPER" targetPackage="com.example.demo.dao" targetProject="E:\intellij_idea\liull\springbootmybatisdemo\src\main\java"> </javaClientGenerator> <!--配置表信息及类信息--> <table schema="ssmweb" tableName="emp" domainObjectName="Emp" > <generatedKey column="emp_id" sqlStatement="MySql" identity="true" /> </table> </context> </generatorConfiguration>
这里注意:在上面pom.xml中配置的mybatis-generator-maven-plugin插件,是默认加载/src/main/resources/目录下名为generatorConfig.xml。
运行插件
双击插件即可运行。
运行后目录:
正式整合mybatis
配置application.yml
spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/ssmweb?useSSL=false&serverTimezone=UTC username: root password: 123456 #mybatis配置 mybatis: mapper-locations: classpath:mapper/*.xml
需要配置mapper映射文件位置,不然映射类无法找到映射文件位置,运行会报错。
扫描映射类
在springboot启动类上添加@MapperScan注解
@MapperScan(basePackages = {"com.example.demo.dao"}) @SpringBootApplication public class SpringbootmybatisdemoApplication { public static void main(String[] args) { SpringApplication.run(SpringbootmybatisdemoApplication.class, args); } }
测试
service:
@Service public class EmpService { @Autowired private EmpMapper empMapper; public List<Emp> getAll(){ return empMapper.selectByExample(null); } }
controller:
@RestController public class EmpController { @Autowired private EmpService empService; @GetMapping("/emps") public List<Emp> getAll(){ return empService.getAll(); } }
结果: