SpringBoot使用mybatis

#加載mybatis依賴java

<!-- mysql -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.32</version>
    </dependency>

    <!-- mybatis -->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>${spring.mybatis.version}</version>
    </dependency>
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-autoconfigure</artifactId>
        <version>${spring.mybatis.version}</version>
    </dependency>

#建立一個公共的組件依賴類 建立一個組件公共類ModuleConfig,說一下爲何建立這個類,若是你的項目須要分包,分模塊,分工程最終進行組合依賴的話,這個公共組件能夠在每一個包下建一個,進行管理指定包、項目的依賴已經未來可能的擴展mysql

固然若是你的項目只是一個Web業務 沒有我說的分佈式、分包、分模塊這個類能夠不用建,該類中的註解均可以在啓動類上來寫,效果同樣的。web

下段代碼就是該類的所有,簡單說一下,@Configuration 進行配置註冊,@MapperScan這個是告知你的Mapper類是在哪一個位置的,這樣設定以後,就不須要在每一個Mapper類上加註解@Mapper了,能夠看一下【其餘代碼中的Mapper】spring

@Configuration
@MapperScan("com.dengzy.kuj.mybatis.dao")
public class ModuleConfig {
	
}

#其餘的代碼sql

啓動類:@EnableTransactionManagement開啓事務管理apache

@SpringBootApplication
@EnableTransactionManagement
public class FwApplication {

    public static void main(String[] args) {
        SpringApplication.run(FwApplication.class);
    }

}

Mapper類緩存

@Repository("userMapper")
public interface UserMapper {

    int deleteByPrimaryKey(Long id);

    int insert(User record);

    int insertSelective(User record);

    User selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(User record);

    int updateByPrimaryKey(User record);
}

Service及其實體類就此忽略.....tomcat

#配置文件springboot

其實這個mybatis的配置文件默承認以,若是你須要根據業務和需求進行調整mybatis那麼能夠以下配置:mybatis

#application.yml配置文件
spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&autoReconnect=true&characterEncoding=utf8
    username: root
    password: root
    driver-class-name: com.mysql.jdbc.Driver
    tomcat:
      minIdle: 5
      maxActive: 20
      initialSize: 5
      timeBetweenEvictionRunsMillis: 60000
      minEvictableIdleTimeMillis: 300000
      validationQuery: SELECT 1
      testWhileIdle: true
      testOnBorrow: false
      testOnReturn: false

#mybatis的優化配置等等,若是你不須要去掉也能夠
mybatis:
  config-location: classpath:META-INF\mybatis-config.xml

下面這個是mybatis的配置文件信息,基本沒有用什麼東西,算是一個記錄,須要的你們能夠根據需求來。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-config.dtd"> 
<configuration>
	<settings>
		<!-- 全局映射器啓用緩存 -->
		<setting name="cacheEnabled" value="false"/>
		<!-- 查詢時,關閉關聯對象即時加載以提升性能 -->
		<!--<setting name="lazyLoadingEnabled" value="true"/>-->
		<!--&lt;!&ndash; 設置關聯對象加載的形態,此處爲按需加載字段(加載字段由SQL指定),不會加載關聯表的全部字段,以提升性能 &ndash;&gt;-->
		<!--<setting name="aggressiveLazyLoading" value="false"/>-->
		<!--&lt;!&ndash; 對於未知的SQL查詢,容許返回不一樣的結果集以達到通用的效果 &ndash;&gt;-->
		<!--<setting name="multipleResultSetsEnabled" value="true"/>-->
		<!--&lt;!&ndash; 容許使用列標籤代替列名 &ndash;&gt;-->
		<!--<setting name="useColumnLabel" value="true"/>-->
		<!--&lt;!&ndash; 容許使用自定義的主鍵值(好比由程序生成的UUID 32位編碼做爲鍵值),數據表的PK生成策略將被覆蓋 &ndash;&gt;-->
		<!--<setting name="useGeneratedKeys" value="true"/>-->
		<!--&lt;!&ndash; 給予被嵌套的resultMap以字段-屬性的映射支持 &ndash;&gt;-->
		<!--<setting name="autoMappingBehavior" value="FULL"/>-->
	</settings>
		
</configuration>

訪問一下,證實我成功了(單元測試我也有,我準備是單元測試單獨寫一篇,這個就用了)

輸入圖片說明

項目結果以下圖

輸入圖片說明

#關於IDEA工具不編譯src目錄下的xml問題

最新的Idea工具不會把src目錄下的xml看成源碼編譯,這樣就致使dao裏面的Mapper與對應的xml對應不上,此處有兩種方式,

一種是把xml放到resource下,創建一個目錄好比mapper,放進去,而後在配置文件中配置以下

#mybatis
    mybatis:
        config-location: classpath:META-INF\mybatis-config.xml
        mapper-locations: classpath:mapper/*.xml #指定mapper.xml位置

另外一種就是用maven的插件,在pom.xml中代碼有註釋,在<bulid>中添加以下代碼

<resources>
            <!-- 解決IDEA不編譯src下的xml問題 -->
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
  </resources>

#完整的pom.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.dengzy.kuj</groupId>
    <artifactId>springboot-mybaties</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!-- 公共配置信息 -->
    <properties>
        <springframework.version>4.3.3.RELEASE</springframework.version>
        <spring.boot.version>1.4.3.RELEASE</spring.boot.version>
        <spring.mybatis.version>1.1.1</spring.mybatis.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>

    <!-- 依賴包管理 -->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring.boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <!-- Spring Boot核心依賴包 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!-- 單元測試 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>

        <!-- mysql -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.32</version>
        </dependency>

        <!-- mybatis -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>${spring.mybatis.version}</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-autoconfigure</artifactId>
            <version>${spring.mybatis.version}</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${spring.boot.version}</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>org.springframework</groupId>
                        <artifactId>springloaded</artifactId>
                        <version>1.2.2.RELEASE</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
        <resources>
            <!-- 解決IDEA不編譯src下的xml問題 -->
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                    <include>**/*.properties</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.yml</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>
    </build>

</project>
相關文章
相關標籤/搜索