zoukankan      html  css  js  c++  java
  • (五)SpringBoot2.0基础篇- Mybatis与插件生成代码

    SpringBoot与Mybatis合并

      一、创建SpringBoot项目,引入相关依赖包:

    <?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.cn</groupId>
      <artifactId>spring-boot-mybatis</artifactId>
      <version>1.0-SNAPSHOT</version>
    
      <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <java.version>1.8</java.version>
      </properties>
    
      <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>2.0.1.RELEASE</version>
      </parent>
    
      <dependencies>
        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    
        <!-- mysql 数据库驱动. -->
        <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
        </dependency>
    
        <!-- spring-boot mybatis依赖 -->
        <dependency>
          <groupId>org.mybatis.spring.boot</groupId>
          <artifactId>mybatis-spring-boot-starter</artifactId>
          <version>1.3.2</version>
        </dependency>
    
      </dependencies>
    
      <build>
        <plugins>
          <!-- 打包插件 -->
          <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
          </plugin>
    
          <plugin>
            <!--Mybatis-generator插件,用于自动生成Mapper和POJO-->
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-maven-plugin</artifactId>
            <version>1.3.2</version>
            <configuration>
              <!--配置文件的位置-->
              <configurationFile>
                src/main/resources/mybatis/mybatis-generator.xml
              </configurationFile>
              <verbose>true</verbose>
              <overwrite>true</overwrite>
            </configuration>
            <executions>
              <execution>
                <id>Generate MyBatis Artifacts</id>
                <goals>
                  <goal>generate</goal>
                </goals>
              </execution>
            </executions>
            <dependencies>
              <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.46</version>
              </dependency>
              <dependency>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-core</artifactId>
                <version>1.3.2</version>
              </dependency>
            </dependencies>
          </plugin>
        </plugins>
      </build>
    
    </project>

      项目目录:

      

      二、创建mybatis-generator.xml生成器配置文件(在lib目录中放入相应的mysql连接器mysql-connector-java-5.1.46.jar):

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE generatorConfiguration
            PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
            "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
    <generatorConfiguration>
        <!-- 数据库驱动 -->
        <classPathEntry location="./lib/mysql-connector-java-5.1.46.jar"/>
    
        <context id="DB2Tables" targetRuntime="MyBatis3">
            <commentGenerator>
                <property name="suppressDate" value="true"/>
                <!-- 是否去除自动生成的注释 true:是 ; false:否 -->
                <property name="suppressAllComments" value="true"/>
            </commentGenerator>
    
            <!--数据库链接URL,用户名、密码 -->
             <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://192.168.1.121:3306/test?useSSL=false"
                userId="root" password="admincss"> </jdbcConnection>
    
            <!--数据库链接URL,用户名、密码 -->
            <!--<jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver"
                            connectionURL="jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=FTdevdb02.dafycredit.com)(PORT=1521))(CONNECT_DATA=(SERVER=dedicated)(SERVICE_NAME=devdb02)))"
                            userId="wechat" password="Test$20150104">
            </jdbcConnection>-->
    
            <javaTypeResolver>
                <property name="forceBigDecimals" value="false"/>
            </javaTypeResolver>
    
            <!-- 生成模型的包名和位置 -->
            <javaModelGenerator targetPackage="com.cn.entity"
                                targetProject="src/main/java">
                <property name="enableSubPackages" value="true"/>
                <property name="trimStrings" value="true"/>
            </javaModelGenerator>
    
            <!-- 生成映射文件的包名和位置 -->
            <sqlMapGenerator targetPackage="mybatis.mapper"
                             targetProject="src/main/resources">
                <property name="enableSubPackages" value="true"/>
            </sqlMapGenerator>
    
            <!-- 生成DAO的包名和位置 -->
            <javaClientGenerator type="XMLMAPPER"
                                 targetPackage="com.cn.mapper"
                                 targetProject="src/main/java">
                <property name="enableSubPackages" value="true"/>
            </javaClientGenerator>
    
    
            <!-- 要生成哪些表 -->
            <table tableName="student" domainObjectName="Student"
                   enableCountByExample="false" enableUpdateByExample="false"
                   enableDeleteByExample="false" enableSelectByExample="false"
                   selectByExampleQueryId="false">
            </table>
    
        </context>
    </generatorConfiguration>

      由于上一步已添加相关的插件依赖,只需在maven管理的plugins中启动mybatis-generator:

      

      三、创建application.properties、controller、service:

    spring.datasource.url=jdbc:mysql://192.168.1.121:3306/test
    spring.datasource.username=root
    spring.datasource.password=admincss
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    
    #必须配置,否则会找不到映射的xml mybatis.mapper
    -locations=classpath:mybatis/mapper/*.xml
    package com.cn.controller;
    
    import com.cn.entity.Student;
    import com.cn.service.StudentService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    /**
     * @program: spring-boot-example
     * @description:
     * @author:
     * @create: 2018-05-11 10:50
     **/
    @RestController
    public class StudentController {
    
        @Autowired
        private StudentService studentService;
    
        @RequestMapping("/getStudentByKey/{id}")
        public Student getStudentByKey(@PathVariable int id) {
            return studentService.getStudentByPrimaryKey(id);
        }
    
    }
    StudentController.java
    package com.cn.service;
    
    import com.cn.entity.Student;
    
    /**
     * @program: spring-boot-example
     * @description:
     * @author:
     * @create: 2018-05-11 10:51
     **/
    
    public interface StudentService {
    
        Student getStudentByPrimaryKey(int id);
    
    }
    StudentService.java
    package com.cn.service;
    
    import com.cn.entity.Student;
    import com.cn.mapper.StudentMapper;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    /**
     * @program: spring-boot-example
     * @description:
     * @author:
     * @create: 2018-05-11 10:55
     **/
    @Service
    public class StudentServiceImpl implements StudentService{
    
        @Autowired
        private StudentMapper studentMapper;
    
        @Override
        public Student getStudentByPrimaryKey(int id) {
            return studentMapper.selectByPrimaryKey(id);
        }
    }
    StudentServiceImpl.java

      四、在生成的Mapper类中,添加@Mapper注解,目的在于将该Mapper添加进spring容器中或者可以在启动类中配置@MapperScan扫描范围:

    package com.cn.mapper;
    
    import com.cn.entity.Student;
    import org.apache.ibatis.annotations.Mapper;
    
    @Mapper
    public interface StudentMapper {
        int deleteByPrimaryKey(Integer id);
    
        int insert(Student record);
    
        int insertSelective(Student record);
    
        Student selectByPrimaryKey(Integer id);
    
        int updateByPrimaryKeySelective(Student record);
    
        int updateByPrimaryKey(Student record);
    }

      五、启动,测试:

    代码实例:https://gitee.com/lfalex/spring-boot-example/tree/dev/spring-boot-mybatis

  • 相关阅读:
    node设置跨域白名单
    vueInitVux中引入bootstrap、jquery步骤
    npm命令集合
    css横屏问题的设置
    verdaccio启动命令
    拖拽上传文件在火狐中会打开新窗口
    vue监听input输入框限制输入长度
    axios get请求传递参数 es6语法
    export default和export的使用
    webpack中如何使用vue
  • 原文地址:https://www.cnblogs.com/lfalex0831/p/9023727.html
Copyright © 2011-2022 走看看