springboot学习(四)整合MyBatis

添加mybatis、MySQL驱动、Druid(连接池)依赖

        <dependency>
           <groupId>mysql</groupId>
           <artifactId>mysql-connector-java</artifactId>
           <version>6.0.5</version>
       </dependency>
       <dependency>
           <groupId>org.mybatis.spring.boot</groupId>
           <artifactId>mybatis-spring-boot-starter</artifactId>
           <version>2.0.0</version>
       </dependency>
       <dependency>
           <groupId>com.alibaba</groupId>
           <artifactId>druid-spring-boot-starter</artifactId>
           <version>1.1.10</version>
       </dependency>

在application.properties中配置数据库的基本信息

spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
  • 直接使用mybatis的注解进行查询

@Repository
public interface BookMapper {
   @Select("select * from Book where id=#{id}")
   Book queryById(String id);
}

Mapper.java创建好之后,还要配置mapper扫描,第一种方法是在每个Mapper.java上添加 @Mapper注解(不推荐);第二种在项目启动类上添加@MapperScan扫描Mapper

@SpringBootApplication
@MapperScan(basePackages = "com.hjy.dao")
public class Application {
   public static void main(String[] args) {
       SpringApplication.run(Application.class,args);
  }
}
  • 使用mapper.xml进行查询

使用mapper.xml进行查询时,xml文件可以存放在两个地方:

  1. 和Mapper.java存放在同一个包下,放在这里的Mapper.xml会被自动扫描到,但是有另外一个Maven带来的问题,就是java目录下的xml资源在项目打包时会被忽略掉,所以,如果UserMapper.xml放在包下,需要在pom.xml文件中再添加如下配置,避免打包时java目录下的XML文件被自动忽略掉

<build>
   <resources>
       <resource>
           <directory>src/main/java</directory>
           <includes>
               <include>**/*.xml</include>
           </includes>
       </resource>
       <resource>
           <directory>src/main/resources</directory>
       </resource>
   </resources>
</build>
  1. xml放在resources目录下,这样就不用担心打包时被忽略了,但是放在resources目录下,又不能自动被扫描到,需要在application.properties中添加配置。例如在resources目录下创建mapper目录用来放mapper文件

mybatis.mapper-locations=classpath:mapper/*.xml

 

原文地址:https://www.cnblogs.com/yjh1995/p/14164430.html