#加載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"/>--> <!--<!– 設置關聯對象加載的形態,此處爲按需加載字段(加載字段由SQL指定),不會加載關聯表的全部字段,以提升性能 –>--> <!--<setting name="aggressiveLazyLoading" value="false"/>--> <!--<!– 對於未知的SQL查詢,容許返回不一樣的結果集以達到通用的效果 –>--> <!--<setting name="multipleResultSetsEnabled" value="true"/>--> <!--<!– 容許使用列標籤代替列名 –>--> <!--<setting name="useColumnLabel" value="true"/>--> <!--<!– 容許使用自定義的主鍵值(好比由程序生成的UUID 32位編碼做爲鍵值),數據表的PK生成策略將被覆蓋 –>--> <!--<setting name="useGeneratedKeys" value="true"/>--> <!--<!– 給予被嵌套的resultMap以字段-屬性的映射支持 –>--> <!--<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>