Mybaits的逆向工程
1.项目结构
2.pom依赖
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | <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> <groupId>cn.wq</groupId> <artifactId>mbg</artifactId> <version>0.0.1-SNAPSHOT</version> <dependencies> <!-- MBG --> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.5</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.28</version> <scope>runtime</scope> </dependency> <!-- MyBatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.6</version> </dependency> </dependencies> </project> |
3.generatorConfig.xml文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | <?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= "DB2Tables" targetRuntime= "MyBatis3Simple" >这个实在不知道怎么解释, 反正就是大环境targetRuntime 可选项,可填值为MyBatis3,MyBatis3Simple(默认的),Ibatis2Java2,Ibatis2Java5 --> <context id= "DB2Tables" targetRuntime= "MyBatis3" > <commentGenerator> <property name= "suppressAllComments" value= "true" /> </commentGenerator> <!--jdbc的数据库连接 --> <jdbcConnection driverClass= "com.mysql.jdbc.Driver" connectionURL= "jdbc:mysql://localhost:3306/wq" userId= "root" password= "wangqing" > </jdbcConnection> <!-- 非必需,类型处理器,在数据库类型和java类型之间的转换控制--> <javaTypeResolver> <property name= "forceBigDecimals" value= "false" /> </javaTypeResolver> <!-- Model模型生成器,用来生成含有主键key的类,记录类 以及查询Example类 targetPackage 指定生成的model生成所在的包名 targetProject 指定在该项目下所在的路径 --> <!-- pojo生成的地方 --> <javaModelGenerator targetPackage= "com.qingfeng.pojo" targetProject= "src/main/java" > <!-- 是否允许子包,即targetPackage.schemaName.tableName --> <property name= "enableSubPackages" value= "false" /> <!-- 是否对model添加 构造函数 --> <property name= "constructorBased" value= "false" /> <!-- 是否对类CHAR类型的列的数据进行trim操作 --> <property name= "trimStrings" value= "true" /> <!-- 自动为每一个生成的类创建一个构造方法,构造方法包含了所有的field;而不是使用setter; --> <!-- <property name= "constructorBased" value= "true" /> --> <!-- 建立的Model对象是否 不可改变 即生成的Model对象不会有 setter方法,只有构造方法 --> <property name= "immutable" value= "false" /> </javaModelGenerator> <!--mapper映射文件生成所在的目录 为每一个数据库的表生成对应的SqlMap文件 --> <!-- sql映射文件生成的地方 --> <sqlMapGenerator targetPackage= "mappers" targetProject= "src/main/resources" > <!-- 在targetPackage的基础上,根据数据库的schema再生成一层 package , 最终生成的类放在这个 package 下,默认为 false --> <property name= "enableSubPackages" value= "true" /> </sqlMapGenerator> <!-- 客户端代码,生成易于使用的针对Model对象和XML配置文件 的代码 type= "ANNOTATEDMAPPER" ,生成Java Model 和基于注解的Mapper对象 type= "MIXEDMAPPER" ,生成基于注解的Java Model 和相应的Mapper对象 type= "XMLMAPPER" ,生成SQLMap XML文件和独立的Mapper接口 --> <!-- targetPackage:mapper接口dao生成的位置 --> <!-- dao接口生成的地方 --> <javaClientGenerator type= "XMLMAPPER" targetPackage= "com.qingfeng.mapper" targetProject= "src/main/java" > <!-- 在targetPackage的基础上,根据数据库的schema再生成一层 package ,最终生成的类放在这个 package 下,默认为 false --> <!-- enableSubPackages:是否让schema作为包的后缀 --> <property name= "enableSubPackages" value= "false" /> </javaClientGenerator> <!-- 只要是数据库对应的pojo,我们都以T开头 --> <!-- 指定要逆向的每一张表,用户表 --> <!--这样配置不会生成Example类--> <table tableName= "t_user" domainObjectName= "TUser" enableCountByExample= "false" enableUpdateByExample= "false" enableDeleteByExample= "false" enableSelectByExample= "false" selectByExampleQueryId= "false" ></table> <table tableName= "t_cart" domainObjectName= "TCart" enableCountByExample= "false" enableUpdateByExample= "false" enableDeleteByExample= "false" enableSelectByExample= "false" selectByExampleQueryId= "false" ></table> <!--这样配置会生成Example类--> <!-- <table schema= "frame" tableName= "t_user" domainObjectName= "TUser" ></table> <table schema= "frame" tableName= "t_cart" domainObjectName= "TCart" ></table> --> </context> </generatorConfiguration> |
4.测试MBGTest类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | package test; 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 MBGTest { public static void main(String[] args) throws Exception { List<String> warnings = new ArrayList<String>(); boolean overwrite = true ; File configFile = new File( "src/main/resources/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 ); System. out .println( "生成成功!" ); } } |
5.运行MBGTest类
6.生成的pojo、dao、mapper
分类:
Mybatis
, mybaits逆向工程
标签:
mybaits逆向工程
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南