MyBatis 的逆向工程MyBatis Generator, MBG帮助你根据数据库表自动生成Java 实体类、Mapper 接口、XML 映射文件极大提高开发效率。一、什么是 MyBatis 逆向工程MyBatis 逆向工程MBG是官方提供的代码生成工具用于自动从数据库表生成对应的 Java 代码包括自动生成内容示例说明实体类Model如User.java对应t_user表Mapper 接口如UserMapper.javaMapper XML 文件如UserMapper.xml内含select/insert/update/delete语句二、使用方式标准 Maven 项目步骤 1添加 Maven 插件build plugins plugin groupIdorg.mybatis.generator/groupId artifactIdmybatis-generator-maven-plugin/artifactId version1.4.1/version configuration !-- 允许覆盖 -- overwritetrue/overwrite /configuration !-- 插件的依赖 -- dependencies !-- JDBC 驱动 -- dependency groupIdmysql/groupId artifactIdmysql-connector-java/artifactId version8.0.33/version /dependency /dependencies /plugin /plugins /build步骤 2创建配置文件generatorConfig.xml1、配置文件名只能是generatorConfig.xml2、配置文件只能放到resources文件夹下?xml version1.0 encodingUTF-8 ? !DOCTYPE generatorConfiguration PUBLIC -//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd generatorConfiguration !-- targetRuntime有两个值 MyBatis3Simlpe: 生成的是基础版只有基本的增删改查 MyBatis3生成的是增强版除了基本的增删改查之外还有复杂的增删改查 -- context idMyContext targetRuntimeMyBatis3 !-- 防止生成重复代码 -- plugin typeorg.mybatis.generator.plugins.UnmergeableXmlMappersPlugin / !-- 注释信息的生成 -- commentGenerator !-- 是否去掉生成日期 -- property name suppressDate valuetrue / !-- 是否去除注释 -- property namesuppressAllComments valuetrue/ /commentGenerator !-- 数据库连接信息 -- jdbcConnection driverClasscom.mysql.cj.jdbc.Driver connectionURLjdbc:mysql://localhost:3306/wsbazinga?serverTimezoneUTC userIdroot password / !-- JavaBean 生成位置 -- javaModelGenerator targetPackagecom.wsbazinga.advance.pojo targetProjectsrc/main/java !-- 是否开启了子包 -- property nameenableSubPackages valuetrue/ !-- 是否去除字段名前后空白 -- property nametrimStrings valuetrue/ /javaModelGenerator !-- Mapper XML 文件位置 -- sqlMapGenerator targetPackagecom.wsbazinga.advance.mapper targetProjectsrc/main/resources !-- 是否开启了子包 -- property nameenableSubPackages valuetrue/ /sqlMapGenerator !-- Mapper 接口生成位置 -- javaClientGenerator typeXMLMAPPER targetPackagecom.wsbazinga.advance.mapper targetProjectsrc/main/java !-- 是否开启了子包 -- property nameenableSubPackages valuetrue/ /javaClientGenerator !-- 要生成的表 -- table tableNamet_teacher domainObjectNameTeacher/ /context /generatorConfiguration【注意】若是targetRuntimeMyBatis3会生成xxxExample.java文件在pojo同目录下条件查询构建器类。这是因为MyBatis3模式默认生成基于 Example 的动态查询方法比如ListUser selectByExample(UserExample example); int deleteByExample(UserExample example);这个UserExample类的作用是帮助你以 Java 对象方式动态构建复杂 WHERE 条件语句替代你手动写 SQL 条件非常适合多条件拼接查询。Example类作用演示比如你想查询年龄大于 25 且 name 包含 wang 的用户传统写法是写 SQLSELECT * FROM user WHERE age 25 AND name LIKE %wang%而使用 Example 的写法是UserExample example new UserExample(); UserExample.Criteria criteria example.createCriteria(); criteria.andAgeGreaterThan(25); criteria.andNameLike(%wang%); ListUser users userMapper.selectByExample(example);QBC风格query by criteria一种查询方式比较面向对象看不到sql语句。步骤 3使用直接双击即可。