통합 스프링 부트 MyBatis로 (3) -의 MyBatis 발생기 배열


봄 부팅 통합 자습서


개요

MyBatis로 생성기 코드 생성기 엔티티 클래스가 자동으로 크게 데이터베이스 테이블 구조가 MyBatis로, 매퍼 인터페이스와 해당 mapper.xml입니다 생성이 반복되는 지루한 작업을 줄일 수 있습니다, 그것은 편리합니다.

MyBatis로 발전기는 코드를 생성, 여러 번 실행되도록 설계 자바 파일은 일반적으로, 이전 및 새 XML 파일 병합 코드를 다룹니다.

명령 줄 이클립스 플러그인, Maven 플러그인 : MyBatis로 발전기는 세 가지 용도가있다. 우리는 여기에 가장 편리한 받는다는 플러그인 사용법을 소개하고, 다른 유사한 방법, 관련 정보를 참조 할 수 배웁니다.

준비

데이터 준비

이러한없는 데이터로서 가이드 데이터를 생성하기 전에 개별지도 참조 데이터를 재사용한다.

Eclipse 프로젝트

새 프로젝트, 2 튜토리얼 전에 재사용 프로젝트를 만들지 마십시오, 처음 두 기사로 프로젝트를 생성하지 않습니다.

따라 추가

추가 아래의 MyBatis 발전기 플러그인 빌드>의 pom.xml 파일 플러그인 의존성 추가

            <plugin>
              <groupId>org.mybatis.generator</groupId>
              <artifactId>mybatis-generator-maven-plugin</artifactId>
              <version>1.3.7</version>
              <configuration>
                <verbose>true</verbose>
                <overwrite>true</overwrite>
              </configuration>
              <dependencies>
                <dependency>
                    <groupId>mysql</groupId>
                    <artifactId>mysql-connector-java</artifactId>
                    <version>8.0.13</version>
                    <scope>runtime</scope>
                </dependency>
              </dependencies>
            </plugin>

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>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.1.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.qikegu</groupId>
    <artifactId>springboot-mybatis-demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springboot-mybatis-demo</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        
        <!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper-spring-boot-starter -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.2.10</version>
        </dependency>
        
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            
            <plugin>
              <groupId>org.mybatis.generator</groupId>
              <artifactId>mybatis-generator-maven-plugin</artifactId>
              <version>1.3.7</version>
              <configuration>
                <verbose>true</verbose>
                <overwrite>true</overwrite>
              </configuration>
              <dependencies>
                <dependency>
                    <groupId>mysql</groupId>
                    <artifactId>mysql-connector-java</artifactId>
                    <version>8.0.13</version>
                    <scope>runtime</scope>
                </dependency>
              </dependencies>
            </plugin>
            
        </plugins>
    </build>

</project>

구성 추가

MyBatis로 발전기의 프로필 뉴 generatorConfig.xml 파일,

영상

다음과 같이 문서 읽기 :

<?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>
    <!--导入配置文件-->
    <properties resource="application.properties"></properties>
 
    <!-- 一个数据库一个context --> 
    <context id="default">
 
        <!-- 注释生成设置 --> 
        <commentGenerator>
            <!-- 是否生成注释代时间戳-->  
            <property name="suppressDate" value="true" />
            <!-- 是否取消注释 -->
            <property name="suppressAllComments" value="true" />
        </commentGenerator>
 
        <!--jdbc的数据库连接-->
        <jdbcConnection driverClass="${spring.datasource.driver-class-name}"
                        connectionURL="${spring.datasource.url}"
                        userId="${spring.datasource.username}"
                        password="${spring.datasource.password}">
            <property name="nullCatalogMeansCurrent" value="true" />
        </jdbcConnection>
 
        <!-- 类型转换 -->  
        <javaTypeResolver>
            <!-- 是否使用bigDecimal, false可自动转化以下类型(Long, Integer, Short, etc.) -->  
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>
 
        <!-- targetPackage:生成的实体类所在的包 -->
        <!-- targetProject:生成的实体类所在的硬盘位置 -->
        <javaModelGenerator targetPackage="com.qikegu.demo.model" targetProject="src/main/java">
            <!-- 是否允许子包 -->
            <property name="enableSubPackages" value="false" />
            <!-- 是否对modal添加构造函数 -->
            <property name="constructorBased" value="true" />
            <!-- 是否清理从数据库中查询出的字符串左右两边的空白字符 -->
            <property name="trimStrings" value="true" />
            <!-- 建立modal对象是否不可改变 即生成的modal对象不会有setter方法,只有构造方法 -->
            <property name="immutable" value="false" />
        </javaModelGenerator>
 
        <!-- targetPackage 和 targetProject:生成的  mapper xml 文件的包和位置 -->
        <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
            <!-- 是否在当前路径下新加一层schema,ex:false路径com.qikegu.demo.model, com.qikegu.demo.model.[schemaName] -->  
            <property name="enableSubPackages" value="false" />
            <!-- 是否针对string类型的字段在set的时候进行trim调用 -->  
            <property name="trimStrings" value="true"/> 
        </sqlMapGenerator>
 
        <!-- targetPackage 和  targetProject:生成的  java interface 文件的包和位置 -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="com.qikegu.demo.repository" 
                             targetProject="src/main/java">
            <!-- 是否在当前路径下新加一层schema,ex:false路径com.qikegu.demo.model, com.qikegu.demo.model.[schemaName] --> 
            <property name="enableSubPackages" value="false" />
        </javaClientGenerator>
        
        <!-- 配置表信息 --> 
        <!-- schema即为数据库名 tableName为对应的数据库表 domainObjectName是要生成的实体类 enable*ByExample, 是否生成 example类   -->  
        <!-- 不同的表,修改tableName和domainObjectName就可以 -->
        <table tableName="user" domainObjectName="User"
               enableCountByExample="false" enableUpdateByExample="false"
               enableDeleteByExample="false" enableSelectByExample="false"
               selectByExampleQueryId="false">
        </table>
    </context>
</generatorConfiguration>

설명 :

코드의 주석을 참조하십시오.

자동 생성

오래된 파일을 삭제

다음 그림 파일을 삭제, 이러한 파일은 자동으로 MyBatis로 발전기를 생성됩니다

영상

실행의 MyBatis 발전기

선택 오른쪽 프로젝트 루트 디렉토리 팝업 메뉴를 클릭, 왼쪽에 이클립스 : run as -> 4.Maven build...팝업 대화 상자를 다음과 같이 빨간색 원을 수정주의, 실행 실행을 클릭합니다 :

영상

우연, 완전한 구축이없는 경우, 파일이 생성되었습니다.

코드를 수정

이 프로그램을 실행하면 userMapper.java selectUser에서 () 인터페이스가 존재하지 않기 때문에, 그것은 불평 할 것이다.

== 관련 코드를 주석 : ==

UserService.java

//    public List<User> listUser(int page, int pageSize);

UserserviceImpl.java

//  @Override
//  public List<User> listUser(int page, int pageSize) {
//        List<User> result = null;
//        try {
//            PageHelper.startPage(page, pageSize); //每页的大小为pageSize,查询第page页的结果
//            PageHelper.orderBy("id ASC "); //进行分页结果的排序
//          result = userMapper.selectUser();
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//
//      return result;
//  }

UserController.java

//    @RequestMapping(value="", method = RequestMethod.GET, produces="application/json")
//    public PageInfo<User> listUser(
//          @RequestParam(value="page", required=false, defaultValue="1") int page,
//          @RequestParam(value="page-size", required=false, defaultValue="5") int pageSize){
//      
//
//        List<User> result = userService.listUser(page, pageSize);
//        // PageInfo包装结果,返回更多分页相关信息
//        PageInfo<User> pi = new PageInfo<User>(result);
//        
//        return pi;
//    }

달리기

선택 오른쪽 프로젝트 루트 디렉토리 팝업 메뉴를 클릭, 왼쪽에 이클립스 : run as -> spring boot app프로그램을 실행합니다. 열기 우체부에 다음과 같이 액세스 인터페이스, 결과는 다음과 같습니다

영상

개요

이 문서의 MyBatis 발전기의 사용에 대해 설명합니다 다음과 같이 주요 포인트가 요약되어 있습니다 :

  1. 플러그인 종속성 받는다는의 MyBatis로 발전기를 추가
  2. MyBatis로 발전기 구성 파일을 추가합니다 generatorConfig.xml를
  3. 받는다는 빌드를 실행 MyBatis로 발전기를 : 생성, 코드 생성

실제 개발은 MyBatis로 발전기는 부하를 많이 줄일 수를 사용하여, 유용합니다.

전체 코드

추천

출처www.cnblogs.com/haibianren/p/11547026.html