SpringBoot整合Mybatis 以及 mybatis自动生成代码配置

1、springboot的配置文件application.yml

[html]  view plain  copy
  1. #端口  
  2. server:  
  3.   port: 8080  
  4.   
  5.   #模板页面  
  6.   #注释的部分是Thymeleaf默认的配置,如有其它需求可以自行更改  
  7.   spring:  
  8.     thymeleaf:  
  9.       cache: false  
  10.       prefix: classpath:/templates/  
  11.       suffix: .html  
  12.       mode: LEGACYHTML5  
  13. #      encoding: UTF-8  
  14. #      content-type: text/html  
  15.   
  16. ##数据源一  
  17. #spring:  
  18. #      datasource:  
  19. #          driverClass: com.mysql.jdbc.Driver  
  20. #          url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8  
  21. #          username: xuan  
  22. #          password: 123456  
  23. #数据源二  
  24. spring:  
  25.       datasource:  
  26.           url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8  
  27.           username: xuan  
  28.           password: 123456  
  29.           # 使用druid数据源  
  30.           type: com.alibaba.druid.pool.DruidDataSource  
  31.           driver-class-name: com.mysql.cj.jdbc.Driver  
  32.           filters: stat  
  33.           maxActive: 20  
  34.           initialSize: 1  
  35.           maxWait: 60000  
  36.           minIdle: 1  
  37.           timeBetweenEvictionRunsMillis: 60000  
  38.           minEvictableIdleTimeMillis: 300000  
  39.           validationQuery: select 'x'  
  40.           testWhileIdle: true  
  41.           testOnBorrow: false  
  42.           testOnReturn: false  
  43.           poolPreparedStatements: true  
  44.           maxOpenPreparedStatements: 20  
  45.   
  46. #spring-boot整合mybatis  
  47. mybatis:  
  48.   #config-location: classpath:/mapper/config/mybatisConfig.xml #可以注射掉,没用到该配置文件  
  49.   mapper-locations: classpath:/mapper/*Mapper.xml  
  50.   #type-aliases-package: com.xuan.entity  

2、maven的配置文件pom.xml (加入springboot整合mybatis的jar包,以及mysql驱动jar包,阿里的数据库链接池jar包)

以及mybatis 自动生成代码的一些配置

[html]  view plain  copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  3.          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
  4.     <modelVersion>4.0.0</modelVersion>  
  5.   
  6.     <groupId>com.xuan</groupId>  
  7.     <artifactId>myspringboot</artifactId>  
  8.     <version>0.0.1-SNAPSHOT</version>  
  9.     <packaging>jar</packaging>  
  10.   
  11.     <name>myspringboot</name>  
  12.     <description>Demo project for Spring Boot</description>  
  13.   
  14.     <parent>  
  15.         <groupId>org.springframework.boot</groupId>  
  16.         <artifactId>spring-boot-starter-parent</artifactId>  
  17.         <version>1.5.8.RELEASE</version>  
  18.         <relativePath/> <!-- lookup parent from repository -->  
  19.     </parent>  
  20.   
  21.     <properties>  
  22.         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
  23.         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>  
  24.         <java.version>1.8</java.version>  
  25.   
  26.         <mybatis.generator.version>1.3.2</mybatis.generator.version>  
  27.         <mysql.connector.java.version>6.0.6</mysql.connector.java.version>  
  28.   
  29.   
  30.         <!-- Used by MyBatis Generator to Generate Codes -->  
  31.         <!-- 运行命令: mvn mybatis-generator:generate -e -->  
  32.         <!--<classPathEntry.mysql.location>${basedir}/target/${project.artifactId}/WEB-INF/lib/mysql-connector-java-${mysql.connector.java.version}.jar</classPathEntry.mysql.location>-->  
  33.         <classPathEntry.mysql.location>/Users/chenqixuan/.m2/repository/mysql/mysql-connector-java/5.1.38/mysql-connector-java-5.1.38.jar</classPathEntry.mysql.location>  
  34.         <javaModelGenerator.targetProject>${basedir}/src/main/java</javaModelGenerator.targetProject>  
  35.         <sqlMapGenerator.targetProject>${basedir}/src/main/resources</sqlMapGenerator.targetProject>  
  36.         <javaClientGenerator.targetProject>${basedir}/src/main/java</javaClientGenerator.targetProject>  
  37.         <mybatis.generator.configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</mybatis.generator.configurationFile>  
  38.         <mybatis.generator.overwrite>true</mybatis.generator.overwrite>  
  39.     </properties>  
  40.   
  41.     <dependencies>  
  42.         <!--springboot整合redis-->  
  43.         <dependency>  
  44.             <groupId>org.springframework.boot</groupId>  
  45.             <artifactId>spring-boot-starter-data-redis</artifactId>  
  46.         </dependency>  
  47.         <!--springboot整合mybatis-->  
  48.         <dependency>  
  49.             <groupId>org.mybatis.spring.boot</groupId>  
  50.             <artifactId>mybatis-spring-boot-starter</artifactId>  
  51.             <version>1.3.1</version>  
  52.         </dependency>  
  53.         <!--mysql jdbc驱动 -->  
  54.         <dependency>  
  55.             <groupId>mysql</groupId>  
  56.             <artifactId>mysql-connector-java</artifactId>  
  57.             <version>${mysql.connector.java.version}</version>  
  58.         </dependency>  
  59.         <!-- alibaba的druid数据库连接池 -->  
  60.         <dependency>  
  61.             <groupId>com.alibaba</groupId>  
  62.             <artifactId>druid</artifactId>  
  63.             <version>1.0.11</version>  
  64.         </dependency>  
  65.   
  66.         <dependency>  
  67.             <groupId>org.springframework.boot</groupId>  
  68.             <artifactId>spring-boot-starter-web</artifactId>  
  69.         </dependency>  
  70.   
  71.         <!--模板页面-->  
  72.         <dependency>  
  73.             <groupId>org.springframework.boot</groupId>  
  74.             <artifactId>spring-boot-starter-thymeleaf</artifactId>  
  75.         </dependency>  
  76.         <dependency>  
  77.             <groupId>net.sourceforge.nekohtml</groupId>  
  78.             <artifactId>nekohtml</artifactId>  
  79.             <version>1.9.22</version>  
  80.         </dependency>  
  81.   
  82.         <dependency>  
  83.             <groupId>org.springframework.boot</groupId>  
  84.             <artifactId>spring-boot-starter-test</artifactId>  
  85.             <scope>test</scope>  
  86.         </dependency>  
  87.     </dependencies>  
  88.   
  89.     <build>  
  90.         <plugins>  
  91.             <plugin>  
  92.                 <groupId>org.springframework.boot</groupId>  
  93.                 <artifactId>spring-boot-maven-plugin</artifactId>  
  94.             </plugin>  
  95.             <!-- mybatis generator 自动生成代码插件 -->  
  96.             <plugin>  
  97.                 <groupId>org.mybatis.generator</groupId>  
  98.                 <artifactId>mybatis-generator-maven-plugin</artifactId>  
  99.                 <version>${mybatis.generator.version}</version>  
  100.             </plugin>  
  101.         </plugins>  
  102.     </build>  
  103.   
  104.   
  105. </project>  

3、mybatis的配置文件 (可以不要需要,因为在application.yml配置了)

[html]  view plain  copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE configuration  
  3.         PUBLIC "-//mybatis.org//DTD Config 3.0//EN"  
  4.         "http://mybatis.org/dtd/mybatis-3-config.dtd">  
  5.   
  6. <configuration>  
  7.     <settings>  
  8.         <!-- changes from the defaults -->  
  9.         <setting name="lazyLoadingEnabled" value="false" />  
  10.     </settings>  
  11.   
  12.     <mappers>  
  13.         <!--在application.yml配置文件中已经配置的*Mapper.xml,所以这里不需要重复添加了-->  
  14.         <!--<mapper resource="mapper/UserMapper.xml" />-->  
  15.     </mappers>  
  16.   
  17. </configuration>  

4、用户实体类xml映射文件 UserMapper.xml

[html]  view plain  copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">  
  3. <mapper namespace="com.xuan.mapper.UserMapper">  
  4.   
  5.     <!-- 查询网校的用户数目 -->  
  6.     <select id="getAllUser" resultType="com.xuan.entity.User">  
  7.           SELECT * from user  
  8.     </select>  
  9.       
  10. </mapper>  

5、自动生成配置文件 generatorConfig.xml(项目目录下运行命令: mvn mybatis-generator:generate -e )

注意:generatorConfig.xml配置文件中有些参数笔者是配置在pom.xml里的,另外mysql-connector-java-5.1.38.jar  数据库mysql驱动也不要使用太高的版本(笔者使用6.0.6版本是遇到错误,换成低版本就没事)

[html]  view plain  copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE generatorConfiguration  
  3.         PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"  
  4.         "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">  
  5.   
  6. <generatorConfiguration>  
  7.     <classPathEntry location="${classPathEntry.mysql.location}" />  
  8.   
  9.     <context id="mysqlTables" targetRuntime="MyBatis3">  
  10.         <jdbcConnection driverClass="com.mysql.jdbc.Driver"  
  11.                         connectionURL="jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8"  
  12.                         userId="xuan" password="123456">  
  13.         </jdbcConnection>  
  14.   
  15.         <javaTypeResolver>  
  16.             <property name="forceBigDecimals" value="false" />  
  17.         </javaTypeResolver>  
  18.   
  19.         <javaModelGenerator targetPackage="com.xuan.entity"  
  20.                             targetProject="${javaModelGenerator.targetProject}">  
  21.             <property name="enableSubPackages" value="true" />  
  22.             <property name="trimStrings" value="true" />  
  23.         </javaModelGenerator>  
  24.   
  25.         <sqlMapGenerator targetPackage="mapper"  
  26.                          targetProject="${sqlMapGenerator.targetProject}">  
  27.             <property name="enableSubPackages" value="true" />  
  28.         </sqlMapGenerator>  
  29.   
  30.         <javaClientGenerator type="XMLMAPPER"  
  31.                              targetPackage="com.xuan.mapper" targetProject="${javaClientGenerator.targetProject}">  
  32.             <property name="enableSubPackages" value="false" />  
  33.         </javaClientGenerator>  
  34.   
  35.         <!-- 
  36.         <table tableName="live_course_channel" domainObjectName="LiveCourseChannel"></table> 
  37.  
  38.         -->  
  39.         <table tableName="video" domainObjectName="Video"></table>  
  40.   
  41.   
  42.     </context>  
  43. </generatorConfiguration>  

6、用户实体类:

[java]  view plain  copy
  1. package com.xuan.entity;  
  2.   
  3. import java.io.Serializable;  
  4.   
  5. /** 
  6.  * Created by chenqixuan on 17/10/24. 
  7.  */  
  8. public class User implements Serializable{  
  9.     private static final long serialVersionUID = 2120869894112984147L;  
  10.   
  11.     private Integer id;  
  12.   
  13.     private String  name;  
  14.   
  15.     private  Integer age;  
  16.   
  17.     private String address;  
  18.   
  19.     public Integer getId() {  
  20.         return id;  
  21.     }  
  22.   
  23.     public void setId(Integer id) {  
  24.         this.id = id;  
  25.     }  
  26.   
  27.     public String getName() {  
  28.         return name;  
  29.     }  
  30.   
  31.     public void setName(String name) {  
  32.         this.name = name;  
  33.     }  
  34.   
  35.     public Integer getAge() {  
  36.         return age;  
  37.     }  
  38.   
  39.     public void setAge(Integer age) {  
  40.         this.age = age;  
  41.     }  
  42.   
  43.     public String getAddress() {  
  44.         return address;  
  45.     }  
  46.   
  47.     public void setAddress(String address) {  
  48.         this.address = address;  
  49.     }  
  50. }  

7、dao层是使用@Mapper注解接口代理,以前spring是使用自动扫描

[java]  view plain  copy
  1. package com.xuan.mapper;  
  2.   
  3. import com.xuan.entity.User;  
  4. import org.apache.ibatis.annotations.Mapper;  
  5.   
  6. import java.util.List;  
  7.   
  8. /** 
  9.  * Created by chenqixuan on 17/10/24. 
  10.  */  
  11. @Mapper  
  12. public interface UserMapper {  
  13.   
  14.     public List<User> getAllUser();  
  15.   
  16. }  

8、controller引用:

[java]  view plain  copy
  1. package com.xuan.controller;  
  2.   
  3. import com.xuan.entity.User;  
  4. import com.xuan.mapper.UserMapper;  
  5. import org.springframework.beans.factory.annotation.Autowired;  
  6. import org.springframework.web.bind.annotation.GetMapping;  
  7. import org.springframework.web.bind.annotation.RequestMapping;  
  8. import org.springframework.web.bind.annotation.RestController;  
  9.   
  10. import java.util.*;  
  11.   
  12. /** 
  13.  * Created by chenqixuan on 17/10/24. 
  14.  */  
  15. @RestController  
  16. @RequestMapping("/user")  
  17. public class UserController {  
  18.   
  19.     @Autowired  
  20.     private UserMapper userMapper;  
  21.   
  22.     @GetMapping(value="/all")  
  23.     public List<User> getAllUser(){  
  24.   
  25.         return userMapper.getAllUser();  
  26.     }  
  27.   
  28.   
  29. }  

9、效果图:


10、目录结构:







猜你喜欢

转载自blog.csdn.net/chenyao1994/article/details/80779555