zoukankan      html  css  js  c++  java
  • 框架 Spring Boot 技术入门到整合 8-1 Springboot整合Mybatis-使用generatorConfig生成mapper以及pojo

    0    课程地址

    https://www.imooc.com/video/16726/0

    1    本节概要

    使用generatorConfig生成mapper 以及pojo

    2    demo
    2.1  demo(执行方式为:执行GeneratorDisplay的main方法)

    pom.xml(引入相关依赖)

    <!-- mybaties 课程部分-->
            <!-- 1    数据源部分  引入数据源  阿里巴巴 德鲁伊 (有性能监控部分)-->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>1.1.0</version>
            </dependency>
    
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.41</version>
            </dependency>
    
            <!--  2    mybatis部分-->
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>1.3.1</version>
            </dependency>
            <!--mapper-->
            <dependency>
                <groupId>tk.mybatis</groupId>
                <artifactId>mapper-spring-boot-starter</artifactId>
                <version>1.2.4</version>
            </dependency>
            <!--pagehelper-->
            <dependency>
                <groupId>com.github.pagehelper</groupId>
                <artifactId>pagehelper-spring-boot-starter</artifactId>
                <version>1.2.3</version>
            </dependency>
    
            <!--  3    自动生成 pojo 和 xml-->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid-spring-boot-starter</artifactId>
                <version>1.1.9</version>
            </dependency>
    
            <dependency>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-core</artifactId>
                <version>1.3.2</version>
                <scope>compile</scope>
                <optional>true</optional>
            </dependency>

    application.xml(引入相关配置)


    ############################################################
    #
    # 配置数据源相关 使用阿里巴巴的 druid 数据源
    #
    ############################################################
    spring.datasource.url=jdbc:mysql://localhost:3306/bendi
    spring.datasource.username=root
    spring.datasource.password=root
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    spring.datasource.druid.initial-size=1
    spring.datasource.druid.min-idle=1
    spring.datasource.druid.max-active=20
    spring.datasource.druid.test-on-borrow=true
    spring.datasource.druid.stat-view-servlet.allow=true


    ############################################################ ############################################################ # # mybatis 配置 # ############################################################ # mybatis 配置
    # 自动生成pojo路径 mybatis.type-aliases-package=com.example.demo.pojo # 自动生成 *maper.xml 路径
    mybatis.mapper-locations=classpath:mapper/*.xml # 通用 Mapper 配置 mapper.mappers=com.example.demo.tools.MyMapper mapper.not-empty=false mapper.identity=MYSQL # 分页插件配置 pagehelper.helperDialect=mysql pagehelper.reasonable=true pagehelper.supportMethodsArguments=true pagehelper.params=count=countSql
     

    GeneratorDisplay.java

    package com.example.demo.tools;
    
    import java.io.File;
    import java.util.ArrayList;
    import java.util.List;
    
    import org.mybatis.generator.api.MyBatisGenerator;
    import org.mybatis.generator.config.Configuration;
    import org.mybatis.generator.config.xml.ConfigurationParser;
    import org.mybatis.generator.internal.DefaultShellCallback;
    
    public class GeneratorDisplay {
    
        public void generator() throws Exception{
    
            List<String> warnings = new ArrayList<String>();
            boolean overwrite = true;
            //指定 逆向工程配置文件
            File configFile = new File("generatorConfig.xml"); 
            ConfigurationParser cp = new ConfigurationParser(warnings);
            Configuration config = cp.parseConfiguration(configFile);
            DefaultShellCallback callback = new DefaultShellCallback(overwrite);
            MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,
                    callback, warnings);
            myBatisGenerator.generate(null);
    
        } 
        
        public static void main(String[] args) throws Exception {
            try {
                GeneratorDisplay generatorSqlmap = new GeneratorDisplay();
                generatorSqlmap.generator();
            } catch (Exception e) {
                e.printStackTrace();
            }
            
        }
    }
    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>
        <context id="MysqlContext" targetRuntime="MyBatis3Simple" defaultModelType="flat">
            <property name="beginningDelimiter" value="`"/>
            <property name="endingDelimiter" value="`"/>
    
            <plugin type="tk.mybatis.mapper.generator.MapperPlugin">
                <property name="mappers" value="com.example.demo.tools.MyMapper"/>
            </plugin>
    
            <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                            connectionURL="jdbc:mysql://localhost:3306/bendi"
                            userId="root"
                            password="root">
            </jdbcConnection>
    
            <!-- 对于生成的pojo所在包 -->
            <javaModelGenerator targetPackage="com.example.demo.pojo" targetProject="src/main/java"/>
    
            <!-- 对于生成的mapper所在目录 -->
            <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"/>
    
            <!-- 配置mapper对应的java映射 -->
            <javaClientGenerator targetPackage="com.example.demo.mapper" targetProject="src/main/java"
                                 type="XMLMAPPER"/>
    
    
            <table tableName="aaa"></table>
             
        </context>
    </generatorConfiguration>

    MyMapper.java

    /*
     * The MIT License (MIT)
     *
     * Copyright (c) 2014-2016 abel533@gmail.com
     *
     * Permission is hereby granted, free of charge, to any person obtaining a copy
     * of this software and associated documentation files (the "Software"), to deal
     * in the Software without restriction, including without limitation the rights
     * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
     * copies of the Software, and to permit persons to whom the Software is
     * furnished to do so, subject to the following conditions:
     *
     * The above copyright notice and this permission notice shall be included in
     * all copies or substantial portions of the Software.
     *
     * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
     * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
     * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
     * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
     * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
     * THE SOFTWARE.
     */
    
    package com.example.demo.tools;
    
    import tk.mybatis.mapper.common.Mapper;
    import tk.mybatis.mapper.common.MySqlMapper;
    
    /**
     * 继承自己的MyMapper
     *
     * @author liuzh
     * @since 2015-09-06 21:53
     */
    public interface MyMapper<T> extends Mapper<T>, MySqlMapper<T> {
        //TODO
        //FIXME 特别注意,该接口不能被扫描到,否则会出错
    }

    执行完成后生成的相关类:

    AaaMapper.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
    <mapper namespace="com.example.demo.mapper.AaaMapper" >
      <resultMap id="BaseResultMap" type="com.example.demo.pojo.Aaa" >
        <!--
          WARNING - @mbg.generated
        -->
        <result column="id" property="id" jdbcType="VARCHAR" />
        <result column="name" property="name" jdbcType="VARCHAR" />
        <result column="roleid" property="roleid" jdbcType="VARCHAR" />
      </resultMap>
    </mapper>

    AaaMapper.java

    package com.example.demo.mapper;
    
    import com.example.demo.pojo.Aaa;
    import com.example.demo.tools.MyMapper;
    
    public interface AaaMapper extends MyMapper<Aaa> {
    }

    Aaa.java

    package com.example.demo.pojo;
    
    import javax.persistence.*;
    
    public class Aaa {
        private String id;
    
        private String name;
    
        private String roleid;
    
        /**
         * @return id
         */
        public String getId() {
            return id;
        }
    
        /**
         * @param id
         */
        public void setId(String id) {
            this.id = id;
        }
    
        /**
         * @return name
         */
        public String getName() {
            return name;
        }
    
        /**
         * @param name
         */
        public void setName(String name) {
            this.name = name;
        }
    
        /**
         * @return roleid
         */
        public String getRoleid() {
            return roleid;
        }
    
        /**
         * @param roleid
         */
        public void setRoleid(String roleid) {
            this.roleid = roleid;
        }
    }
    3    常见释义:

    pojo  包含属性以及get set方法的bean类

    应用技术: 反射

  • 相关阅读:
    bzoj1107: [POI2007]驾驶考试egz LIS+单调队列
    poj3134 Power Calculus 迭代加深搜索
    洛谷P3953 逛公园 记忆化搜索
    洛谷P3960 列队 splay
    bzoj1486: [HNOI2009]最小圈 分数规划
    SharePoint Add-in Model (App Model) 介绍 – 概念、托管方式、开发语言
    SharePoint Add-in Model 介绍
    Office Add-In 应用类型及平台支持
    使用 Napa 创建并调试一个 Office 内容应用 – Hello World
    Office Add-in Model 简介
  • 原文地址:https://www.cnblogs.com/1446358788-qq/p/14124780.html
Copyright © 2011-2022 走看看