SpringBoot集成Mybatis(七)

项目结构:

1、首先引入dataSource依赖,和其注入,这里看上一节(第六节)https://blog.csdn.net/qq_37431224/article/details/103877983

      的集成方式。

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

猜你喜欢

转载自blog.csdn.net/qq_37431224/article/details/103894091