ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

mybatis逆向工程

2022-08-20 13:34:48  阅读:202  来源: 互联网

标签:逆向 工程 generator mapper empExample 条件 mybatis


正向工程

先创建java实体类,由框架负责根据实体类生成数据库表。Hibernate是支持正向工程

逆向工程

先创建数据库表,由框架负责数据库表,反向生成如下资源

  • java实体类

  • mapper接口

  • mapper映射文件

创建逆向工程的步骤

pom配置文件

<build>
        <!--逆向工程插件-->
        <plugins>
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.7</version>
                <!--插件的依赖-->
                <dependencies>
                    <!--逆向工程的核心依赖-->
                    <dependency>
                        <groupId>org.mybatis.generator</groupId>
                        <artifactId>mybatis-generator-core</artifactId>
                        <version>1.3.7</version>
                    </dependency>
                    <!--数据库连接池-->
                    <dependency>
                        <groupId>com.mchange</groupId>
                        <artifactId>c3p0</artifactId>
                        <version>0.9.5.2</version>
                    </dependency>
                    <!--mysql驱动-->
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>5.1.37</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>

创建逆向工程配置文件

文件固定 resource / 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="jdbc.properties"></properties>
    <!--
        targetRuntime:执行生成的逆向工程的版本
            MyBatis3Simple: 生成基本的CRUD(清新简洁版)
            MyBatis3: 生成带条件的CRUD(奢华尊享版)
    -->
    <context id="DB2Tables" targetRuntime="MyBatis3Simple">
        <!--数据库连接信息-->
        <jdbcConnection driverClass="${jdbc.driver}"
                        connectionURL="${jdbc.url}"
                        userId="${jdbc.username}"
                        password="${jdbc.password}">
        </jdbcConnection>
        <!--
            javaBean生成策略
                targetPackage:生成的包
                targetProject:生成的位置
        -->
        <javaModelGenerator targetPackage="com.atguigu.mybatis.pojo" targetProject=".\src\main\java">
            <!--开启子包,上面package每个点对应一个子包-->
            <property name="enableSubPackages" value="true"/>
            <!--去除字段名处等 字符串空格-->
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        <!--
            sql映射文件生成策略 resource下的
                targetPackage:生成的包
                targetProject:生成的位置
        -->
        <sqlMapGenerator targetPackage="com.atguigu.mybatis.mappers" targetProject=".\src\main\resource">
            <!--开启子包,上面package每个 . 对应一个子包-->
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>
        <!--
            mapper接口生成策略 java下的
                type:
                targetPackage:生成的包
                targetProject:生成的位置
        -->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.atguigu.mybatis.mappers" targetProject=".\src\main\java">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>
​
        <!--
            逆向分析的表
            tableName:设置数据表名,设置为* , 可以对应所有表,此时不写domainObjectName
            domainObjectName:设置指定生成出来的实体类的类名
        -->
        <table tableName="t_emp" domainObjectName="Emp" />
        <table tableName="t_dept" domainObjectName="Dept" />
    </context>
</generatorConfiguration>

点击执行

QBC查询

在MBG生成的mapper接口中有方法 selectByExample(Example example) 意为按照条件查询,example为条件

首先创建条件对象

EmpExample empExample = new EmpExample();

通过createCriteria()方法开启添加条件,and{BeanName}{Criteria}方法添加条件查询,每个条件为and关系

empExample.createCriteria().andEnameLike("a").andAgeGreaterThan(20).andDidIsNot Null();

通过将之前添加的条件通过or拼接其他and条件

empExample.or().andSexEqualTo("男");

执行mapper的selectByExample方法,获取查询到的记录

List<Emp> list = mapper.selectByExample(empExample);

选择性添加

updateBy{xxx}Selective(new {Bean}())根据你新建的bean对象,对数据表进行可选的修改,当bean对象的属性有null的时候,表里对应的属性不进行更新

updateBy{xxx}(new {Bean}())当bean对象的属性有null的时候,表里对应的属性更新为null

标签:逆向,工程,generator,mapper,empExample,条件,mybatis
来源: https://www.cnblogs.com/phonk/p/16607552.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有