项目结构:

SpringBoot集成Mybatis(七)_xml

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,连@Bean都不用写,全自动
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接口

@SpringBootApplication
/**
* 扫描Mybatis的Mapper类,相当于
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="cn.wolfcode.crm.mapper"/>
</bean>
@MapperScan中包含@ComponentScan,所以必须精确到mapper包下,否则如果在上一层扫描到IService接口的话又会再一次装配,出现错误
*/
@MapperScan("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