草庐IT

PDManer 入门教程:超强代码生成工具!

陈树义 2024-01-10 原文

对于使用 Spring 全家桶作为开发的小伙伴来说,MyBatis 基本上是最佳的选择。当我们开发一个新的项目的时候,我们都会用 MyBatis Generator 去生成代码,并且还会生成对应的 Controller 层、Service 层、Dao 层代码。有一说一,这种方式确实非常方便,极大节约了广大工程师的开发时间。

但是像 MyBatis Generator 这样的工具也有这样的问题:命令行界面操作非常笨拙不友好、换个新的电脑又得重新弄一遍,真是非常麻烦!于是我在想:是否有一个图形化界面可以来操作生成代码,还能把之前的设置导出成文件,下次新的电脑直接恢复设置就可以了?

我们能想到的,已经有很多人想到,又做到了!PDManer 就是这样一款软件,它以图形化界面的形式帮助我们管理数据库模型,生成 Java 代码 等等,兼职就是开发同学的最佳伴侣啊!

今天就让我带着大家介绍下这款软件,并且送给大家一套我使用了很久的代码生成模板,让大家开发效率再次起飞!

软件安装

PDManer 可在起官网下载,下载地址为:http://www.pdmaner.com/download/v4.1.5。官网提供了多种下载方式,建议可用付费 1 元的方式高速下载,即节省了时间又支持了开源工具,一举两得。

下载完成之后是正常的安装流程,这里不再赘述。

创建项目

下载安装完成后打开软件,点击左侧新建按钮,新建一个新的项目,如下图所示。

创建完成之后,我们可以看到如下图所示的界面,里面列出了数据库表、数据字典等信息。

我们可以直接在这里面建表,后续也可以直接导出这里面的建表语句。这里我是通过数据库导入已建好的表,因此我选择右上角的数据库按钮。

填写好对应的数据库连接信息,随后点击导入按钮,选择从数据库导入。

随后选择具体的数据库,接着选择要导入的表格,点击确定之后就开始导入了。导入完成后,导入的表会在数据表处显示。

随后我们随意选择其中某张表格,可以看到对应的数据表信息、索引信息、数据库代码、程序代码。

其中程序代码标签,就是生成 Java 代码的地方。软件提供了多种语言,以及多种方式的代码生成,例如 Java 语言就提供了 Java Bean、MyBatisPlus 等三种。其中 MyBatisPlus 还提供了 Controller 层、Service 层、Mapper 层等文件代码的生成功能,如下图所示。

## 配置代码生成器

为了能更方便地使用生成的代码,所以我们需要对生成的代码进行配置。我们可以根据我们的项目规范,将对应层的代码生成到不同的目录下。我们点击路径及变量按钮,弹出对应的配置窗口,如下图所示。

我们需要修改的就是上图红框中的位置,主要来说有四大类,分别是:

  • 保存位置:一般填项目所在目录。例如我的项目名为 shopping-mall,那么我就填上这个项目所在磁盘的位置即可,例如:D:\code\shopping-mall。
  • nameSpace:保存项目包名前缀。例如我项目某个 Controller 路径为:tech.shuyi.controller.ShopController,那么项目包名就是 tech.shuyi。
  • codeRoot:默认是表名,这里可以不需要修改。
  • 生成文件映射:修改生成文件的映射位置。文件的保存位置为:保存位置属性 + 映射值,跟上面写的 nameSpace 没关系。

由于上面保存位置我写的是项目的根目录,那么模板这里就从项目根目录写起,一直到具体的包的位置,随后用 {{=it.codeRoot}} 来表示动态类名。下面是我常用的文件映射配置,大家可以根据自己的情况自己参考下。

src/main/java/tech/shuyi/controller/{{=it.codeRoot}}Controller.java
src/main/java/tech/shuyi/service/{{=it.codeRoot}}Service.java
src/main/java/tech/shuyi/service/impl/{{=it.codeRoot}}ServiceImpl.java
src/main/java/tech/shuyi/mapper/{{=it.codeRoot}}Mapper.java
src/main/resources/mapping/{{=it.codeRoot}}Mapper.xml
src/main/java/tech/shuyi/model/entity/{{=it.codeRoot}}.java

配置完成之后,点击确定并生成按钮,就可以生成代码啦!要注意的是,软件貌似只能一个个表格生成代码,这样的话岂不是每个表都需要做一次这样的设置?这样岂不是崩溃了!别担心,软件贴心提供了一个「从其他表引入」的功能,可以直接复制其他表的「设置路径及变量」信息。

点击「从其他表引入」按钮后,选择要参考的表,随后就会自动拷贝对应表的配置信息,这样非常方便!可不要傻傻地再去配置一遍了!

修改代码生成格式

每个公司的规范都不一样,有时候默认的生成模板并不能满足我们的需求,此时我们可以通过修改生成模板来自定义代码生成。我们点击「代码生成器」,接着选择对应类型的代码,最后配置对应文件的生成代码即可。

当然了,如果有需要你也可以再定义新的文件模板,让软件帮你再自动生成其他文件。

看到这里,关于 PDManer 的基本使用就告一段落了,相信大家也能掌握软件的基本使用。更多关于 PDManer 的功能,大家可以查阅 PDManer 官方文档研究。

有关PDManer 入门教程:超强代码生成工具!的更多相关文章

  1. ruby - 使用 RubyZip 生成 ZIP 文件时设置压缩级别 - 2

    我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看ruby​​zip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d

  2. ruby - 如何在 buildr 项目中使用 Ruby 代码? - 2

    如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby​​

  3. ruby-on-rails - Rails 源代码 : initialize hash in a weird way? - 2

    在rails源中:https://github.com/rails/rails/blob/master/activesupport/lib/active_support/lazy_load_hooks.rb可以看到以下内容@load_hooks=Hash.new{|h,k|h[k]=[]}在IRB中,它只是初始化一个空哈希。和做有什么区别@load_hooks=Hash.new 最佳答案 查看rubydocumentationforHashnew→new_hashclicktotogglesourcenew(obj)→new_has

  4. ruby - 在 jRuby 中使用 'fork' 生成进程的替代方案? - 2

    在MRIRuby中我可以这样做:deftransferinternal_server=self.init_serverpid=forkdointernal_server.runend#Maketheserverprocessrunindependently.Process.detach(pid)internal_client=self.init_client#Dootherstuffwithconnectingtointernal_server...internal_client.post('somedata')ensure#KillserverProcess.kill('KILL',

  5. ruby - 如何使用 Ruby aws/s3 Gem 生成安全 URL 以从 s3 下载文件 - 2

    我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A

  6. ruby-on-rails - 浏览 Ruby 源代码 - 2

    我的主要目标是能够完全理解我正在使用的库/gem。我尝试在Github上从头到尾阅读源代码,但这真的很难。我认为更有趣、更温和的踏脚石就是在使用时阅读每个库/gem方法的源代码。例如,我想知道RubyonRails中的redirect_to方法是如何工作的:如何查找redirect_to方法的源代码?我知道在pry中我可以执行类似show-methodmethod的操作,但我如何才能对Rails框架中的方法执行此操作?您对我如何更好地理解Gem及其API有什么建议吗?仅仅阅读源代码似乎真的很难,尤其是对于框架。谢谢! 最佳答案 Ru

  7. ruby - 模块嵌套代码风格偏好 - 2

    我的假设是moduleAmoduleBendend和moduleA::Bend是一样的。我能够从thisblog找到解决方案,thisSOthread和andthisSOthread.为什么以及什么时候应该更喜欢紧凑语法A::B而不是另一个,因为它显然有一个缺点?我有一种直觉,它可能与性能有关,因为在更多命名空间中查找常量需要更多计算。但是我无法通过对普通类进行基准测试来验证这一点。 最佳答案 这两种写作方法经常被混淆。首先要说的是,据我所知,没有可衡量的性能差异。(在下面的书面示例中不断查找)最明显的区别,可能也是最著名的,是你的

  8. ruby - 寻找通过阅读代码确定编程语言的ruby gem? - 2

    几个月前,我读了一篇关于ruby​​gem的博客文章,它可以通过阅读代码本身来确定编程语言。对于我的生活,我不记得博客或gem的名称。谷歌搜索“ruby编程语言猜测”及其变体也无济于事。有人碰巧知道相关gem的名称吗? 最佳答案 是这个吗:http://github.com/chrislo/sourceclassifier/tree/master 关于ruby-寻找通过阅读代码确定编程语言的rubygem?,我们在StackOverflow上找到一个类似的问题:

  9. ruby-on-rails - Ruby on Rails - 为文本区域和图片生成列 - 2

    我是Rails的新手,所以请原谅简单的问题。我正在为一家公司创建一个网站。那家公司想在网站上展示它的客户。我想让客户自己管理这个。我正在为“客户”生成一个表格,我想要的三列是:公司名称、公司描述和Logo。对于名称,我使用的是name:string但不确定如何在脚本/生成脚手架终端命令中最好地创建描述列(因为我打算将其设置为文本区域)和图片。我怀疑描述(我想成为一个文本区域)应该仍然是描述:字符串,然后以实际形式进行调整。不确定如何处理图片字段。那么……说来话长:我在脚手架命令中输入什么来生成描述和图片列? 最佳答案 对于“文本”数

  10. ruby - Net::HTTP 获取源代码和状态 - 2

    我目前正在使用以下方法获取页面的源代码:Net::HTTP.get(URI.parse(page.url))我还想获取HTTP状态,而无需发出第二个请求。有没有办法用另一种方法做到这一点?我一直在查看文档,但似乎找不到我要找的东西。 最佳答案 在我看来,除非您需要一些真正的低级访问或控制,否则最好使用Ruby的内置Open::URI模块:require'open-uri'io=open('http://www.example.org/')#=>#body=io.read[0,50]#=>"["200","OK"]io.base_ur

随机推荐