MyBatis的逆向工程

SpringBoot+MyBatis实现逆向工程 之前一直想要尝试一下自己动手操作一把Mybatis的逆向工程,但是因为各种原因,迟迟未实现,今天正好有空,就试了一把。在搭建的过程当中也遇到了不少的坑,现在将搭建过程和将遇到的坑记录下来,方便自己和各位共享,如果不对之处或有更好的方法,欢迎指出。话不多说,直接上。。。 阅读详情

所谓逆向工程,就用代码自动生成,数据库中 表对应的 pojo, mapper.xml和mapper接口,这样自己就可以省去写pojo和通用的 增删查改 sql 语句了,大大的提高了开发效率。


mybatis 的逆向工程实现有很多种方法,这里说我经常使用的一种。


步骤:


1.新建一个java工程,导入需要的jar包。如图所示:

mybatis,mybatis-generator-core,数据库驱动(数据库选择一个即可)必须选择,log4j可选可不选。


2.新建一个GeneratorSqlMap类,代码如下:

[java]  view plain  copy
  1. import java.io.File;  
  2. import java.io.IOException;  
  3. import java.util.ArrayList;  
  4. import java.util.List;  
  5.   
  6. import org.mybatis.generator.api.MyBatisGenerator;  
  7. import org.mybatis.generator.config.Configuration;  
  8. import org.mybatis.generator.config.xml.ConfigurationParser;  
  9. import org.mybatis.generator.exception.XMLParserException;  
  10. import org.mybatis.generator.internal.DefaultShellCallback;  
  11.   
  12. public class GeneratorSqlmap {  
  13.   
  14.     public void generator() throws Exception{  
  15.   
  16.         List<String> warnings = new ArrayList<String>();  
  17.         boolean overwrite = true;  
  18.         //指定 逆向工程配置文件  
  19.         File configFile = new File("generatorConfig.xml");   
  20.         ConfigurationParser cp = new ConfigurationParser(warnings);  
  21.         Configuration config = cp.parseConfiguration(configFile);  
  22.         DefaultShellCallback callback = new DefaultShellCallback(overwrite);  
  23.         MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,  
  24.                 callback, warnings);  
  25.         myBatisGenerator.generate(null);  
  26.   
  27.     }   
  28.     public static void main(String[] args) throws Exception {  
  29.         try {  
  30.             GeneratorSqlmap generatorSqlmap = new GeneratorSqlmap();  
  31.             generatorSqlmap.generator();  
  32.         } catch (Exception e) {  
  33.             e.printStackTrace();  
  34.         }  
  35.           
  36.     }  
  37.   
  38. }  

3.新建一个generatorConfig.xml(放在工程目录下)

[html]  view plain  copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE generatorConfiguration  
  3.   PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"  
  4.   "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">  
  5.   
  6. <generatorConfiguration>  
  7.     <context id="testTables" targetRuntime="MyBatis3">  
  8.         <commentGenerator>  
  9.             <!-- 是否去除自动生成的注释 true:是 : false:否 -->  
  10.             <property name="suppressAllComments" value="true" />  
  11.         </commentGenerator>  
  12.         <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->  
  13.         <jdbcConnection driverClass="com.mysql.jdbc.Driver"  
  14.             connectionURL="jdbc:mysql://localhost:3306/e3mall" userId="root"  
  15.             password="root">  
  16.         </jdbcConnection>  
  17.         <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和   
  18.             NUMERIC 类型解析为java.math.BigDecimal -->  
  19.         <javaTypeResolver>  
  20.             <property name="forceBigDecimals" value="false" />  
  21.         </javaTypeResolver>  
  22.   
  23.         <!-- targetProject:生成PO类的位置 -->  
  24.         <javaModelGenerator targetPackage="com.e3mall.pojo"  
  25.             targetProject=".\src">  
  26.             <!-- enableSubPackages:是否让schema作为包的后缀 -->  
  27.             <property name="enableSubPackages" value="false" />  
  28.             <!-- 从数据库返回的值被清理前后的空格 -->  
  29.             <property name="trimStrings" value="true" />  
  30.         </javaModelGenerator>  
  31.         <!-- targetProject:mapper映射文件生成的位置 -->  
  32.         <sqlMapGenerator targetPackage="com.e3mall.mapper"  
  33.             targetProject=".\src">  
  34.             <!-- enableSubPackages:是否让schema作为包的后缀 -->  
  35.             <property name="enableSubPackages" value="false" />  
  36.         </sqlMapGenerator>  
  37.         <!-- targetPackage:mapper接口生成的位置 -->  
  38.         <javaClientGenerator type="XMLMAPPER"  
  39.             targetPackage="com.e3mall.mapper"  
  40.             targetProject=".\src">  
  41.             <!-- enableSubPackages:是否让schema作为包的后缀 -->  
  42.             <property name="enableSubPackages" value="false" />  
  43.         </javaClientGenerator>  
  44.         <!-- 指定数据库表 -->  
  45.         <table schema="" tableName="tb_content"></table>  
  46.         <table schema="" tableName="tb_content_category"></table>  
  47.         <table schema="" tableName="tb_item"></table>  
  48.         <table schema="" tableName="tb_item_cat"></table>  
  49.         <table schema="" tableName="tb_item_desc"></table>  
  50.         <table schema="" tableName="tb_item_param"></table>  
  51.         <table schema="" tableName="tb_item_param_item"></table>  
  52.         <table schema="" tableName="tb_order"></table>  
  53.         <table schema="" tableName="tb_order_item"></table>  
  54.         <table schema="" tableName="tb_order_shipping"></table>  
  55.         <table schema="" tableName="tb_user"></table>  
  56.   
  57.     </context>  
  58. </generatorConfiguration>  


4.直接执行Generator类的main方法。执行的效果如下:



这样就生成了对应的 pojo,mapper.xml和mapper接口。我们再将它们拷贝到我们的项目中使用,这样我们就省去了写了很多代码。
Mybatis之逆向工程 mybatis是一个ORM框架,ORM对象映射数据库,通过使用对象来操作数据库。逆向工程是指反过来使用数据库反向创建实体类,接口,映射文件。逆向工程特点:方便开发,简化操作。单表的增删改查都会包括,但是需要注意的是一旦涉及到多表,就需要手动创建。 阅读详情

相关推荐

Mybatis逆向工程的坑和mybatis逆向工程的使用

@[TOC]( Mybatis逆向工程的坑和mybatis逆向工程的使用 ) Maven 报错:Process terminated 今天使用mybatis逆向工程,刚开始报错Process terminated,还以为是mybatis逆向工程的错误,然后去百度找了好久都没有,突然看见一篇博客,说是maven错误。 原文链接 点开项目名,然后点击链接进入报错文件中 那么只要把报错信息的内容解决就可以跑起来了 Mybatis 之targetRuntime in context mybatis_model

weixin_45649753的博客 1490

MyBatis Generator(逆向工程)笔记总结

一、简介 MyBatis Generator(MBG)是MyBatis和iBATIS的代码生成器。它将为所有版本的MyBatis以及版本2.2.0之后的iBATIS版本生成代码。它将内省数据库表(或许多表),并将生成可用于访问表的工件。这减少了设置对象和配置文件以与数据库表交互的初始麻烦。MBG寻求对简单CRUD(创建,检索,更新,删除)的大部分数据库操作产生重大影响。您仍然需要为连接查询或存...

qq_38763540的博客 359

MyBatis的逆向工程详细步骤操作

所谓的逆向工程:会/可以根据数据库表逆向生成Java的 POJO类,SqlMapper.xml (对应SQL映射文件),以及Mapper 接口类等。关于 MyBatis 的逆向工程有两个版本:对应在 targetRuntime 的两个值:java复制代码1. MyBatis3Simple:生成的是基础版,只有基本的增删改查。2. MyBatis3:生成的是增强版,除了基本的增删改查之外还有复杂的增删改查。注意:MyBatis3 增强版,多出来的这个CarExample。

Javajdkbz的博客 1014

mybatis-generator自动生成dao、mapping、bean配置详解(转)

<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <!-- 可以用于加载配置项或者配置文件,在整个配置文件中就可以使用$

S1ow 1万+

mybatis逆向工程

当Oralce数据库存在多个schema可以访问相同的表名时,使用mybatis生成该表的mapper.xml将会出现mapper.xml内容重复的问题,结果导致mybatis解析错误。XXXX即为一个schema的名称,生成后将mapper.xml的schema前缀批量去掉,如果不去掉当oracle用户变更了sql语句将查询失败。使用官方网站的mapper自动生成工具mybatis-generator-core-1.3.2来生成po类和mapper映射文件。根据主键将对象中不为空的值更新至数据库。

不生产代码的码农 1351

ENSP内使用wireshark进行抓包,并且解析icmp报文

前四位:54 89 98 e8 20 38 为ip报文包的mac地址也就是物理地址。一开始进行抓包是没有icmp报文的,需要我们在ensp中使用pc1请求联通pc9。协议编号后分别为:ip版本、ip首部报文长度、服务类型、ip报文总长度。最后为校验和 、源ip地址、目的ip、从08 00开始为真正的数据。我们需要实验的端口为:0/0/4,也就是抓包第三个交换机内的报文。其中显示的icmp报文就是我们需要解析的ip报文。源mac地址后跟着的就是协议编号: 08 00。根据ip报文包的结构我们进行解析。

2301_81713278的博客 2140

11_逆向工程

- enableSubPackages:是否让schema作为包的后缀 -->-- enableSubPackages:是否让schema作为包的后缀 -->-- enableSubPackages:是否让schema作为包的后缀 -->-- targetProject:mapper映射文件生成的位置 -->-- targetPackage:mapper接口生成的位置 -->-- targetProject:生成PO类的位置 -->-- 从数据库返回的值被清理前后的空格 -->-- 指定数据库表 -->

wei7a7a7a的博客 587

在银河麒麟V10上部署Atlas 300i Duo:从固件到驱动的一站式踩坑笔记

日期:2025-09-09关键词:鲲鹏920、Atlas 300i Duo、银河麒麟V10、NPU、驱动、固件。

weixin_41544125的博客 2817

mybatis系列:八、逆向工程

mybatis 逆向工程简单概述配置文件注意事项 简单概述 使用官方网站的mapper自动生成工具mybatis-generator-core-1.3.2来生成po类和mapper映射文件。 配置文件 jar包 log4j-1.2.16.jar mybatis-3.2.3.jar mybatis-generator-core-1.3.2.jar mysql-connector-java-5.1.2...

laonxs的博客 180

零基础玩转STM32CubeIDE LL库:5分钟搞定串口通信(附完整代码)

本文为零基础开发者提供了一份STM32CubeIDE LL库串口通信的快速实战指南。通过CubeMX配置、LL库核心API详解,以及中断接收与环形缓冲区的完整代码实现,帮助读者在5分钟内搭建稳定可靠的串口收发框架,解决从HAL切换到LL库的常见困惑,提升嵌入式开发效率。

weixin_29159441的博客 307

ESP32蓝牙配网实战:微信小程序中的blufi协议实现与优化

本文详细介绍了在微信小程序中实现ESP32蓝牙配网的实战经验,重点解析了blufi协议的应用与优化。内容涵盖从开发环境配置、协议帧格式解析,到小程序端蓝牙通信、数据转换的核心步骤,并提供了配网状态机设计、错误处理及性能调优等进阶方案,旨在帮助开发者高效、稳定地完成物联网设备配网功能开发。

weixin_29159613的博客 459

mybatis的逆向工程的使用

目录 使用方法 导入逆向工程 导入generatorSqlmapCustom项目到eclipse中 修改相关配置 main方法运行 生成完后刷新项目(鼠标右击) 测试 使用官方网站的Mapper自动生成工具mybatis-generator-core-1.3.2来生成po类、mapper接口、Mapper映射文件 使用方法 导入逆向工程 mybatis官网下载此项目 导...

Birdlun的博客 263

雷达回波仿真

文章目录前言一、基础理解1.慢时间维度和快时间维度2.脉冲压缩3.MTI4. 脉冲多普勒处理5.cacfar检测二、具体流程1.产生回波信息加入目标时延以及噪声2.解调回波得到基带信号3.脉冲压缩 MTI MTD cafar检测 前言 雷达算法仿真学习,主要流程包括生成目标回波,将基带信号加在载波上其次是加上目标信息和干扰信号后发射,解调回波信号得到基带信号然后MTI,MTD,最后再检测。 一、基础理解 1.慢时间维度和快时间维度 连续M个脉冲回波经过相干解调之后的基带数据形成的一个二维数据矩阵,.

qq_42961235的博客 1万+

MyBatis逆向工程

例如,如果数据库中有一个名为“user”的表,包含“id”、“username”和“password”列,那么逆向工程会生成一个名为“User”的Java类,该类有“id”、“username”和“password”三个属性。trimStrings属性:逆向工程是通过解析数据库中的表生成Java的实体类(POJO)和mapper接口以及映射文件的,通过解析表中的字段名将其转换为实体类的属性,如果字段名有空格,在这里设置true,trimStrings会自动去掉字段前后的空格,false则反之。

m0_73698492的博客 3057

30、模态组合规则在振动分析中的应用

本文详细介绍了模态组合规则在振动分析中的应用,重点讨论了绝对峰值叠加法(SRSS)和完全二次组合(CQC)的理论基础、应用场景及优缺点。通过具体工程实例,展示了模态组合规则在地震载荷下结构响应分析中的实际效果,并提供了应用步骤和注意事项,为结构设计和安全评估提供了科学依据。

nice1的博客 222

华为OD机试双机位C卷-员工派遣(Py/Java/C/C++/Js/Go)

华为OD机试双机位C卷【员工派遣】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解。华为OD机试- 员工派遣,华为OD机考 - 员工派遣。

qq_45776114的博客 1671

Mybatis逆向工程

mybatis逆向工程的创建,可以节省90%的代码量。以及对逆向工程中出现的各个方法做了详细的解释与举例。

qq_43905491的博客 1048

Oracle EBS和华为MetaERP在会计科目(COA)设计上的观察非常精准。这两种设计确实代表了两种截然不同的系统架构思想,我们可以从设计哲学、优劣对比和演进关系三个方面进行深入分析。

OracleEBS与华为MetaERP的COA设计对比分析 OracleEBS采用弹性域架构,通过固定段数字符串实现多维度核算,强调稳定性和全球统一标准,但修改成本高、扩展性受限。华为MetaERP采用解耦架构,将核算单元、自然科目和核算维度分离,支持动态扩展和灵活调整,更适合业务快速变化的企业。 OracleEBS优势在于强一致性和成熟稳定,劣势是灵活性差;华为MetaERP优势是极致灵活性,劣势是对管理要求高。两者代表了不同时代的企业软件设计理念:OracleEBS适合标准化需求,MetaERP则面向快

金牌架构师 432

mybatis逆向工程和mybatis-plus逆向工程(示例代码+配置)

mybatis逆向工程和mybatis-plus逆向工程 mybatis逆向工程 1.建一个简单的maven工程,打包方式为jar包 <groupId>com.shaoming</groupId> <artifactId>generator</artifactId> 2.pom.xml导入相关的依赖 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w

java技术博客 4271

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Mybatis实现逆向工程

十、mybatis逆向工程 由官方提供的一个工程模板,可以根据指定的数据库自动生成针对单表的所有的常规的增删改查的配置及接口。可以极大的方便设计者,不用再去创建大量的配置及书写接口,从而把精力集中到业务逻辑的实现上去,它的源码存放在github上,也提供了相关的具有逆向工程功能的Maven插件。 1、在pom.xml中引用插件依赖 <build> <finalName>zsxt</finalName> <!--执行逆向工程代码的插

norang的博客 6842

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

下一篇: 在ssh框架中抽取BaseDao简单的CRUD
Java_funds
博客等级 码龄9年 6粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值