1. 程式人生 > 實用技巧 >springboot學習(四)整合MyBatis

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