谷粒商城学习笔记-17-快速开发-逆向工程搭建使用

文章目录

  • 一,克隆人人开源的逆向工程代码
  • 二,把逆向工程集成到谷粒商城的后台工程
  • 三,以商品服务为例,使用逆向工程生成代码
  • 1,修改逆向工程的配置
    • 2,以Debug模式启动逆向工程
    • 3,使用逆向工程生成代码
    • 4,整合生成的代码到gulimall-product模块中
  • 逆向工程错误记录

这一节的主要内容是使用逆向工程,根据数据库表生成Mybatis相关的xml文件、Mapper类、表对应的实体类。

一,克隆人人开源的逆向工程代码

人人开源的逆向工程代码地址是https://gitee.com/renrenio/renren-generator。

使用如下命令,把工程代码克隆到本地。

git@gitee.com:renrenio/renren-generator.git

二,把逆向工程集成到谷粒商城的后台工程

逆向工程的后台代码集成到商城工程中,作为一个模块。

第一步,将前面克隆下来的代码复制到工厂的根目录下,作为后台管理系统模块。

在这里插入图片描述

第二步,修改renren-generator的工程pom.xml文件配置。

如下图,删除关于parent的配置。

在这里插入图片描述

第三步,集成新模块到工程下。

如图,在工程的根目录下的pom.xml文件增加如下配置。

在这里插入图片描述
第四步,修改renren-generator的工程的数据库连接信息。

如下所示,修改内容包括:

  • 数据库IP
  • 用户名
  • 数据库密码
    在这里插入图片描述

三,以商品服务为例,使用逆向工程生成代码

接下来使用逆向工程为商品服务gulimall-product生成相关的代码,其他的服务生成代码的步骤相似。

1,修改逆向工程的配置

在Idea中打开如下文件,修改如下配置。

在这里插入图片描述
修改说明:

  • ① 主要包名,和课程保持一致,修改为com.atguigu,后续不再变化
  • ② 包名,和课程保持一致,修改为com.atguigu.gulimall,后续不再变化
  • ③ 模块名,首先为商品模块生成代码,商品模块的名称是product,这里改为product,这里要根据情况修改
  • ④ 作者名,根据实际情况修改为自己名字,后续不再变化
  • ⑤ 作者邮箱,根据实际情况修改为自己邮箱,后续不再变化
  • ⑥ 表前缀,这个配置非常重要,数据库表名都是有前缀的,比如商品模块的表的前缀是pms_,这个配置的作用时在生成表对应的实体类时,类的名称去掉前缀。如下图,根据这个配置,表pms_attr生成的类名是Attr,如果没有这个配置,类名是PmsAttr

在这里插入图片描述

2,以Debug模式启动逆向工程

如下,启动逆向工程。
在这里插入图片描述

启动成功后,输入localhost:2345,即可访问逆向工程的前端页面,注意我把逆向工程的端口改成了2345,所以要带上端口,端口配置在如下图位置。
在这里插入图片描述

逆向工程前端页面如下。

在这里插入图片描述

3,使用逆向工程生成代码

在这里插入图片描述
如上图操作,生成代码。

  • ① 修改分页配置,把所有的表名展示在一页中。
  • ② 全选,对所有的表生成对应的实体类。
  • ③ 点击按钮,生成代码。

点击生成代码按钮后,生成的代码会被打包,然后自动下载。

在这里插入图片描述

压缩包的内容如下,我们需要的代码在main文件夹中。

在这里插入图片描述

4,整合生成的代码到gulimall-product模块中

按下图方式,右键gulimall-productmain文件夹,选择Open In -> Explorer,打开gulimall-product模块代码所在文件夹。

在这里插入图片描述

然后把解压的main文件夹中的内容,拷贝到打开的main文件夹中。

拷贝完成后,idea中可以看到如下结构的代码。

在这里插入图片描述

逆向工程错误记录

逆向工程错误记录

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/781467.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

通信协议_C#实现自定义ModbusRTU主站

背景知识:modbus协议介绍 相关工具 mbslave:充当从站。虚拟串口工具:虚拟出一对串口。VS2022。 实现过程以及Demo 打开虚拟串口工具: 打开mbslave: 此处从站连接COM1口。 Demo实现 创建DLL库,创建ModbusRTU类,进行实现: using Syste…

OpenAI的崛起:从梦想到现实

OpenAI的崛起不仅是人工智能领域的重大事件,也是科技史上一个引人注目的篇章。本文将深入探讨OpenAI从创立到如今的演变过程,分析其成功的关键因素,以及未来的发展方向。 一、OpenAI的初创期:理想主义与混乱并存 OpenAI成立于20…

【74CH160组成60进制0-59】2021-11-22

缘由60进制计数 到达60后显示ff-嵌入式-CSDN问答 缘由《数电》用两片74160接成29进制计数器应该怎么接呢?-嵌入式-CSDN问答

解决数据库PGSQL,在Mybatis中创建临时表报错TODO IDENTIFIER,连接池用的Druid。更换最新版本Druid仍然报错解决

Druid版本1.1.9报错Caused by: java.sql.SQLException: sql injection violation, syntax error: TODO IDENTIFIER : CREATE TEMPORARY TABLE temp_ball_classify (id int8 NOT NULL,create_time TIMESTAMP,create_by VARCHAR,classify_name VARCHAR) 代码如下: 测…

【数据结构与算法】快速排序双指针法

💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:《数据结构与算法》 期待您的关注 ​

STM32实战项目:从零打造GPS蓝牙自行车码表,掌握传感器、蓝牙、Flash存储等核心技术

一、 引言 骑行,作为一项绿色健康的运动方式,越来越受到人们的喜爱。而记录骑行数据,分析速度、里程等信息,则成为了许多骑行爱好者的追求。本篇文章将带你使用STM32单片机,DIY一款功能完备的自行车码表,记…

【开放集目标检测】Grounding DINO

一、引言 论文: Grounding DINO: Grounding DINO: Marrying DINO with Grounded Pre-Training for Open-Set Object Detection 作者: IDEA 代码: Grounding DINO 注意: 该算法是在Swin Transformer、Deformable DETR、DINO基础上…

【LeetCode】有效的数独

目录 一、题目二、解法 一、题目 请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。&…

代码随想录算法训练营第二十七天 |56. 合并区间 738.单调递增的数字 968.监控二叉树 (可跳过)

56. 合并区间 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。 示例 1: 输入:in…

赤壁之战的烽火台 - 观察者模式

“当烽火连三月,家书抵万金;设计模式得其法,千军如一心。” 在波澜壮阔的三国历史长河中,赤壁之战无疑是一场改变乾坤的重要战役。而在这场战役中,一个看似简单却至关重要的系统发挥了巨大作用——烽火台。这个古老的…

探索InitializingBean:Spring框架中的隐藏宝藏

​🌈 个人主页:danci_ 🔥 系列专栏:《设计模式》《MYSQL》 💪🏻 制定明确可量化的目标,坚持默默的做事。 ✨欢迎加入探索MYSQL索引数据结构之旅✨ 👋 Spring框架的浩瀚海洋中&#x…

Javascript常见数据结构和设计模式

在JavaScript中,常见的数据结构包括两大类:原始数据类型(Primitive Types)和对象类型(Object Types)。对象类型又可以进一步细分为多种内置对象、数组、函数等。下面是一些JavaScript中常见的数据结构&…

《算法笔记》总结No.4——散列

散列的英文名是hash,即我们常说的哈希~该知识点在王道408考研的教材里面属于查找的范围。即便各位并无深入了解过,也听说过散列是一种更高效的查找方法。 一.引例 先来考虑如下一个假设:设有数组M和N分别如下: M[10][1,2,3,4,5,6…

【Spring AOP 源码解析前篇】什么是 AOP | 通知类型 | 切点表达式| AOP 如何使用

前言(关于源码航行) 在准备面试和学习的过程中,我阅读了还算多的源码,比如 JUC、Spring、MyBatis,收获了很多代码的设计思想,也对平时调用的 API 有了更深入的理解;但过多散乱的笔记给我的整理…

自动化设备上位机设计 四

目录 一 设计原型 二 后台代码 一 设计原型 二 后台代码 using SimpleTCP; using SqlSugar; using System.Text;namespace 自动化上位机设计 {public partial class Form1 : Form{SqlHelper sqlHelper new SqlHelper();SqlSugarClient dbContent null;bool IsRun false;i…

【机器学习实战】Datawhale夏令营:Baseline精读笔记2

# AI夏令营 # Datawhale # 夏令营 在原有的Baseline上除了交叉验证,还有一种关键的优化方式,即特征工程。 如何优化特征,关系着我们提高模型预测的精准度。特征工程往往是对问题的领域有深入了解的人员能够做好的部分,因为我们要…

链式二叉树oj题

1.输入k ,找第k层节点个数 int TreeKlevel(BTNode*root,int k) {if (root NULL) {return 0;}if (k 1) {return 1;}return TreeKlevel(root->left, k - 1)TreeKlevel(root->right, k - 1); } 在这里我们要确定递归子问题,第一个就是NULL时返回&…

强化学习中的Q-Learning和Sarsa算法详解及实战

强化学习(Reinforcement Learning, RL)是一种通过与环境交互来学习最优策略的机器学习方法。在强化学习中,Q-Learning和Sarsa是两种重要的基于值的算法。本文将详细讲解这两种算法,并通过实际代码示例展示其应用。 1. 强化学习基…

algorithm算法库学习之——不修改序列的操作

algorithm此头文件是算法库的一部分。本篇介绍不修改序列的操作函数。 不修改序列的操作 all_ofany_ofnone_of (C11)(C11)(C11) 检查谓词是否对范围中所有、任一或无元素为 true (函数模板) for_each 应用函数到范围中的元素 (函数模板) for_each_n (C17) 应用一个函数对象到序…

Vue88-Vuex中的mapActions、mapMutations

一、mapMutations的调用 此时结果不对,因为:若是点击事件不传值,默认传的是event!,所以,修改如下: 解决方式1: 解决方式2: 不推荐,写法麻烦! 1-…