项目结构:
1、首先引入dataSource依赖,和其注入,这里看上一节(第六节)
的集成方式。
2.进行Mybatis集成
1) 引入依赖.
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>
2) 正常完成mapper接口和mapper.xml.
3) mybatis-spring-boot-starter提供了以下配置(具体参考MyBatisProperties对象):
#自动装配Druid的DataSource,连都不用写,全自动
spring.datasource.druid.username=root
spring.datasource.druid.password=123456
spring.datasource.druid.url=jdbc:mysql://localhost:3306/orderdatabase
spring.datasource.druid.driver=com.mysql.jdbc.Driver
#自定义MyBatis配置文件路径,如果不需要mybatis的自定义配置,这句话可以删去
mybatis.config-location=classpath:mybatis.cfg.xml
#扫描别名包,如果需不要别名,可以删去
mybatis.type-aliases-package=com.demo._day04MyBatis.domain
#Mapper的文件路径,如果XXMapper.java 与XXMapper.xml在同一个目录下,他会根据xxMapper.xml同一目录自动寻找其XML,所以下面这句可以删去
mybatis.mapper-locations=classpath:com\demo\_day04MyBatis\mapper/*Mapper.xml
#如果想打印所执行的sql语句,指向mapper包
logging.level.com.demo._day04MyBatis.mapper=debug
4)在AppConfig配置类中使用@MapperScan标签扫描mapper接口
/**
* 扫描Mybatis的Mapper类,相当于
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="cn.wolfcode.crm.mapper"/>
</bean>
@MapperScan中包含@ComponentScan,所以必须精确到mapper包下,否则如果在上一层扫描到IService接口的话又会再一次装配,出现错误
*/
("com.demo._day04MyBatis.mapper")
//配置事务扫描,相当于以前的<tx:annotation-driven/>
//这句话可以不写,因为springboot已经自动加了,但在Service中必须加Transactional
public class AppConfig {
public static void main(String[] args) {
SpringApplication.run(AppConfig.class,args);
}
}
补充知识:
可以在pom文件中的build标签中添加这段配置,让在src下的资源也能加载到classes目录
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<!--mapper.xml在java目录中是无法编译到classes去的,除非加入此话-->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
小技巧:
1.#如果想打印所执行的sql语句,指向mapper包(在application.properties文件中配置,上面有写)
logging.level.com.demo._day04MyBatis.mapper=debug