首页 > 其他分享 >mybatis逆向工程

mybatis逆向工程

时间:2022-08-20 13:12:34浏览次数:71  
标签:逆向 工程 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
From: https://www.cnblogs.com/phonk/p/16607552.html

相关文章

  • mybatis核心配置文件
    Mybatis核心配置文件习惯上命名mybatis-config.xml,整合Spring之后,整个配置文件可以省略核心配置文件主要用于配置连接数据库的环境以及MyBatis的全局配置信息标签顺序......
  • mybatis查询功能
    预设的类型别名这些别名都大小写不敏感Mybatis的各种查询功能查询出的数据只有一条:可以通过实体类对象接收可以通过List接收可以通过Map接收查询出的数据......
  • mybatis获取参数值
    封装SqlSessionUtils/**  *获取SqlSession  *@paramb是否自动管理事务  *@return返回sqlsession  */  publicstaticSqlSession......
  • mybatis特殊sql的执行
    特殊sql的执行模糊查询根据用户名模糊查询List<User>selectLikeUserById(@Param("id")Integerid);建议使用:直接用"%"#{value}"%"拼接<selectid="selectLikeUserByI......
  • mybatis自定义参数
    首先我们先定义两个表t_emp/t_dept由于我们的pojo中,使用了驼峰命名法,而数据表中使用的是下划线命名法解决字段名和属性名不一致为字段起别名,保持与属性名一致select......
  • mybatis缓存
    MyBatis缓存只对查询功能有效一级缓存一级缓存是SqlSession级别的,通过同一个SqlSession查询的数据会被缓存,下次查询相同的数据,就会从缓存中直接获取,不会从数据库重新访......
  • mybatisplus使用xml
    一、配置xml路径mybatis-plus:mapper-locations:classpath:mapper/*.xml二、编写Mapper里面的方法publicinterfaceUserMapperextendsBaseMapper{ListfindAll()......
  • MybatisPlus分页 假性失效
    背景:前端告诉我,页面只能显示1000条数据,实际上有4701条数据,为什么其他数据不能显示,后端返回的total就是1000。我看了后端分页插件配置也没有发现不正确的地方,使用了page()方......
  • MybatisPlus——全网配置最全的代码生成器
    MybatisPlus代码生成器这里讲解的是新版(mybatis-plus3.5.1+版本),旧版不兼容官方文档:https://baomidou.com/(建议多看看官方文档,每种功能里面都有讲解)配置这里的配置......
  • 学习javaweb第2天(MyBatis快速入门)
    Mybatis几乎免除所有的JDBC代码以及设置参数和获取结果集的工作演示mybatis快速入门1、创建user表,添加数据:在sqlyog中输入一下代码,生成mybatis数据库,并且生成tb_user表......