General代码生成器使用说明
- 格式:pdf
- 大小:760.81 KB
- 文档页数:6
VSCode代码生成器在软件开发的过程中,编写重复的代码是一件枯燥乏味且浪费时间的事情。
为了提高开发效率,程序员们一直在寻找各种方法来减少重复工作。
而VSCode代码生成器,则成为了一个不可或缺的利器。
它通过内置的模板和自定义规则,可以快速生成各种常用的代码片段,大大减轻了开发人员的负担。
一、VSCode代码生成器的安装与配置为了使用VSCode代码生成器,首先需要在VSCode中安装相关的插件。
打开VSCode,点击左侧的扩展图标,在搜索框中输入“代码生成器”,然后选择一个适合自己的插件进行安装。
安装完成后,点击插件的图标,进入插件的设置界面。
在设置界面中,我们可以定义代码生成器的相关配置。
例如,我们可以设置生成的代码的风格(如使用空格还是制表符进行缩进)、添加自定义的代码模板等。
这些配置可以根据个人的需求进行调整,以满足不同的编码规范和项目需求。
二、使用使用VSCode代码生成器非常简单。
首先,我们需要选中一段代码,然后通过快捷键或者右键菜单来触发代码生成器。
接着,选择需要生成的代码类型,如变量声明、函数定义、类定义等。
根据选择的类型,代码生成器会自动根据配置文件中的模板生成相应的代码片段。
除了使用默认的代码模板,我们还可以在配置文件中添加自定义的模板。
例如,如果我们经常需要生成一段特定的代码,可以将其作为一个模板保存起来。
这样,下次生成同样的代码时,只需要选择对应的模板,就能快速生成了。
三、VSCode代码生成器的优势与应用场景与手动编写代码相比,使用VSCode代码生成器有以下几个优势:1.提高开发效率:使用代码生成器可以节省大量的时间和精力。
一些常见的代码块,如Getters和Setters、构造函数等,可以通过简单的几步操作就能生成,避免了手动编写的繁琐。
2.保持一致性:代码生成器可以按照一定的规则和约定自动生成代码,从而提高代码的一致性。
这对于团队合作来说尤为重要,可以保证不同开发人员编写的代码风格一致,降低代码维护的成本。
MybatisGenerator最完整配置详解[mybatis代码⾃动⽣成配置] Mybatis Generator最完整配置详解[mybatis代码⾃动⽣成配置]1)说明 generator配置⽂件:1.1) 配置⽣成器 :<!-- 配置⽣成器 --><generatorConfiguration>....</generatorConfiguration>1.2) ${propertyKey}引⽤${propertyKey}的⽅式来引⽤配置项:例如resource:配置资源加载地址,使⽤resource,MBG从classpath开始找,⽐如com/myproject/generatorConfig.propertiesurl:配置资源加载地质,使⽤URL的⽅式,⽐如file:///C:/myfolder/generatorConfig.properties.注意,两个属性只能选址⼀个;另外,如果使⽤了mybatis-generator-maven-plugin,那么在pom.xml中定义的properties都可以直接在generatorConfig.xml中使⽤1.3 ) classPathEntry标签【添加依赖包】<!-- 在MBG⼯作的时候,需要额外加载的依赖包,location属性指明加载jar/zip包的全路径<classPathEntry location="/Program Files/IBM/SQLLIB/java/db2java.zip" />-->1.4 ) context 标签【⽣成⼀组对象的环境】<!--context:⽣成⼀组对象的环境id:必选,上下⽂id,⽤于在⽣成错误时提⽰defaultModelType:指定⽣成对象的样式1,conditional:类似hierarchical;2,flat:所有内容(主键,blob)等全部⽣成在⼀个对象中;3,hierarchical:主键⽣成⼀个XXKey对象(key class),Blob等单独⽣成⼀个对象,其他简单属性在⼀个对象中(record class)targetRuntime:1,MyBatis3:默认的值,⽣成基于MyBatis3.x以上版本的内容,包括XXXBySample;2,MyBatis3Simple:类似MyBatis3,只是不⽣成XXXBySample;introspectedColumnImpl:类全限定名,⽤于扩展MBG --><context id="mysql" defaultModelType="hierarchical" targetRuntime="MyBatis3Simple" >1.5) autoDelimitKeywords 标签【⾃动识别数据的关键字】<!--⾃动识别数据库关键字,默认false,如果设置为true,根据SqlReservedWords中定义的关键字列表;⼀般保留默认值,遇到数据库关键字(Java关键字),使⽤columnOverride覆盖--><property name="autoDelimitKeywords" value="false"/>1.6) javaFileEncoding 标签【字符编码】<!-- ⽣成的Java⽂件的编码 --><property name="javaFileEncoding" value="UTF-8"/>1.7) javaFormatter 标签【格式化java代码】<!-- 格式化java代码 --><property name="javaFormatter" value="org.mybatis.generator.api.dom.DefaultJavaFormatter"/>1.8) beginningDelimiter和endingDelimiter 标签【标记数据库对象名的符号】<!-- beginningDelimiter和endingDelimiter:指明数据库的⽤于标记数据库对象名的符号,⽐如ORACLE就是双引号,MYSQL默认是`反引号; --><property name="beginningDelimiter" value="`"/><property name="endingDelimiter" value="`"/><!-- 必须要有的,使⽤这个配置链接数据库@TODO:是否可以扩展--><jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql:///pss" userId="root" password="admin"><!-- 这⾥⾯可以设置property属性,每⼀个property属性都设置到配置的Driver上 --></jdbcConnection><!-- java类型处理器⽤于处理DB中的类型到Java中的类型,默认使⽤JavaTypeResolverDefaultImpl;注意⼀点,默认会先尝试使⽤Integer,Long,Short等来对应DECIMAL和 NUMERIC数据类型;--><javaTypeResolver type="org.mybatis.generator.internal.types.JavaTypeResolverDefaultImpl"><!--true:使⽤BigDecimal对应DECIMAL和 NUMERIC数据类型false:默认,scale>0;length>18:使⽤BigDecimal;scale=0;length[10,18]:使⽤Long;scale=0;length[5,9]:使⽤Integer;scale=0;length<5:使⽤Short;--><property name="forceBigDecimals" value="false"/></javaTypeResolver><!-- 在targetPackage的基础上,根据数据库的schema再⽣成⼀层package,最终⽣成的类放在这个package下,默认为false --><property name="enableSubPackages" value="true"/><!-- for MyBatis3 / MyBatis3Simple是否创建⼀个不可变的类,如果为true,那么MBG会创建⼀个没有setter⽅法的类,取⽽代之的是类似constructorBased的类--><property name="immutable" value="false"/><!-- 设置⼀个根对象,如果设置了这个根对象,那么⽣成的keyClass或者recordClass会继承这个类;在Table的rootClass属性中可以覆盖该选项注意:如果在key class或者record class中有root class相同的属性,MBG就不会重新⽣成这些属性了,包括:1,属性名相同,类型相同,有相同的getter/setter⽅法;--><property name="rootClass" value="com._520it.mybatis.domain.BaseDomain"/><!-- 设置是否在getter⽅法中,对String类型字段调⽤trim()⽅法 --><property name="trimStrings" value="true"/></javaModelGenerator><!-- 可以为所有⽣成的接⼝添加⼀个⽗接⼝,但是MBG只负责⽣成,不负责检查<property name="rootInterface" value=""/>--></javaClientGenerator><!-- 选择⼀个table来⽣成相关⽂件,可以有⼀个或多个table,必须要有table元素选择的table会⽣成⼀下⽂件:1,SQL map⽂件2,⽣成⼀个主键类;3,除了BLOB和主键的其他字段的类;4,包含BLOB的类;5,⼀个⽤户⽣成动态查询的条件类(selectByExample, deleteByExample),可选;6,Mapper接⼝(可选)tableName(必要):要⽣成对象的表名;注意:⼤⼩写敏感问题。
使用代码生成器和模板引擎加速开发代码生成器和模板引擎是现代软件开发中常用的工具,它们可以加速开发过程并提高代码的质量。
在本文中,我们将讨论代码生成器和模板引擎的工作原理,以及它们在开发过程中的应用和优势。
一、代码生成器的工作原理代码生成器是一种能够根据特定规则和模板生成代码的工具。
它通常会根据用户的输入和配置生成相应的代码文件,从而减少开发人员手工编写重复性代码的工作量。
代码生成器的工作原理可以简单概括为以下几个步骤:1.用户输入:用户需要提供一些必要的输入数据,比如模型定义、文件路径、代码格式等。
2.模板解析:代码生成器会读取用户提供的模板文件,并解析其中的变量和逻辑。
3.代码生成:根据用户输入和模板解析的结果,代码生成器会生成相应的代码文件。
到开发环境中。
代码生成器可以根据不同的需求和规则生成各种类型的代码文件,比如数据库表定义、API接口、前端页面等。
它可以极大地提高开发效率,并且保证了代码的一致性和质量。
二、模板引擎的工作原理模板引擎是一种能够将数据和模板进行组合并输出结果的工具。
它通常会根据用户提供的模板和数据,解析生成最终的文本输出。
模板引擎的工作原理可以简单概括为以下几个步骤:1.模板定义:用户需要提供一个模板文件,其中包含了一些占位符和逻辑标签。
2.数据输入:用户还需要提供一些数据,比如对象属性、列表数据等。
3.模板解析:模板引擎会将模板文件和数据进行解析,替换其中的占位符并执行逻辑操作。
直接展示给用户。
模板引擎可以用于生成各种类型的文本输出,比如邮件、报表、网页等。
它可以从数据和模板中分离业务逻辑,使得代码更易维护和扩展。
三、代码生成器和模板引擎的应用和优势1.加速开发过程:代码生成器可以帮助开发人员自动生成大量重复性代码,比如数据库表定义、接口定义等。
而模板引擎可以帮助生成各种需要根据数据动态生成的文本输出。
这些工具可以大大减少开发人员的手工编码工作,从而加速开发过程。
2.保证代码质量:代码生成器和模板引擎生成的代码和文本都是根据规则和模板进行自动生成的,可以保证了代码的一致性和质量。
一、概述在Java编程语言中,general是一个常见的术语,它通常用来描述一般性的概念或一般化的特性。
在Java中,general一般可以指代多种不同的含义,包括泛型、一般类或对象等。
本篇文章将从不同的角度来解析general在Java中的意思及其相关概念。
二、泛型1. 泛型的概念泛型是Java编程语言中的一个重要特性,它允许我们定义一种数据类型,这种数据类型可以在使用时进行具体化,从而实现对不同类型数据的通用操作。
使用泛型可以使代码更加灵活和可复用,同时也可以提高代码的安全性和可读性。
2. 泛型的语法在Java中,泛型通常使用尖括号<>来表示,其中放置泛型类型参数。
`List<String>`表示一个元素类型为String的列表。
在方法声明和类声明中,可以使用泛型来定义泛型形参,从而使得方法或类可以接受不同类型的参数。
3. 泛型的应用泛型在Java中被广泛应用于集合类、类库以及框架中,通过泛型可以实现对不同类型数据的统一管理和处理。
泛型的引入大大提高了Java编程的灵活性和安全性,使得代码变得更加健壮和可靠。
三、一般类1. 一般类的概念一般类是指普通的、非泛型的类,它们可以用来描述具体的实体、对象或数据结构。
一般类是Java编程中最常见的类,它们可以包含字段、方法、构造函数等成员,用于表示具体的实现逻辑或数据结构。
2. 一般类的特性一般类可以具有各种不同的特性,包括继承、封装、多态等。
通过定义一般类,我们可以实现对具体对象或数据结构的描述和操作,从而实现程序的功能逻辑。
3. 一般类的实例在Java编程中,我们经常会创建各种不同类型的一般类,并通过它们来实现程序的具体功能。
一般类的设计和实现是Java程序开发中的重要内容,良好的一般类设计可以提高代码的可维护性和扩展性。
四、一般对象1. 一般对象的概念一般对象是指普通的、非特定类型的对象,它们可以用来表示实际的实体或数据。
代码生成器原理
代码生成器是一种工具,可根据用户设定的规则和模板,自动生成特定功能的代码。
其原理主要包括以下几个方面:
1. 模板引擎:代码生成器使用模板引擎来解析用户定义的模板。
模板是一种特定格式的文本文件,其中包含了代码的结构和逻辑。
模板引擎可以根据用户传入的参数和数据,在模板中动态生成代码。
2. 元数据解析:在使用代码生成器前,用户需要提供一份描述代码功能和结构的元数据,通常以XML、JSON等格式存储。
代码生成器会解析元数据,了解代码的结构、字段信息、关系等,以便后续根据模板生成相应代码。
3. 代码生成:代码生成器会根据用户设定的规则和模板,基于解析得到的元数据生成代码。
可以通过填充变量、执行逻辑判断、循环等操作,将模板中的占位符替换为实际代码。
4. 代码输出:生成的代码可以输出到文件、数据库或控制台等目标位置。
代码生成器会根据用户的配置,将生成的代码输出到指定目标。
通过使用代码生成器,可以大大提高代码编写的效率和一致性。
用户只需提供元数据和模板,不需要手动编写重复性代码,减少了出错的机会,也降低了维护成本。
同时,可以根据需要快速生成不同架构或框架的代码,提高开发效率。
Java代码⽣成器的制作流程详解1. 前⾔前⼏天写了篇关于的⽂章,不少同学私下问我这个代码⽣成器是如何运作的,为什么要⽤到⼀些模板引擎,所以今天来说明下代码⽣成器的流程。
2. 代码⽣成器的使⽤场景我们在编码中存在很多样板代码,格式较为固定,结构随着项⽬的迭代也⽐较稳定,⽽且数量巨⼤,这种代码写多了也没有什么技术含量,在这种情况下代码⽣成器可以有效提⾼我们的效率,其它情况并不适于使⽤代码⽣成器。
3. 代码⽣成器的制作流程⾸先我们要制作模板,把样板代码的固定格式抽出来。
然后把动态属性绑定到模板中,就像做填空题⼀样。
所以在这个流程中模板引擎是最合适的。
我们通过使⽤模板引擎的语法将数据动态地解析到静态模板中去,然后导出为编程中对应的⽂件就⾏了。
另外模板引擎有着丰富的绑定数据的指令集,可以让我们根据条件动态的绑定数据到模板中去。
以Freemarker为例:三元表达式:${true ? 'checked': ''}还有我们等下要⽤的遍历列表:<#list fields as field>private ${field.fieldType} ${field.fieldName};</#list>在Java开发中我们常⽤的模板引擎有Freemarker、Velocity、Thymeleaf ,随着Web开发中前后端分离的流⾏模板引擎的使⽤场景正在被压缩,但是它依然是⼀门有⽤的技术。
4. 代码⽣成器演⽰接下来,我们以Freemarker为例写⼀个简单的代码⽣成器,来⽣成POJO类。
需要引⼊Freemarker的依赖。
<dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.28</version></dependency>4.1 模板制作POJO的结构可以分为以下⼏部分:ng 包⽆需导⼊。
代码生成器使用手册5.0这是一款为程序员设计的代码生成器,更是一款软件项目智能开发平台,它可以自动生成页面及后台代码,采用了面向服务的架构(SOA)。
一、系统的运行环境1.开发工具Visual Studio 20102.数据库Sql Server 2005/2008版本、oracle 或者mysql3.MVC 3.0版本(/mvc)4.PowerDesigner 15版本5.代码生成器的官方网站二、数据库设计指导规范说明:带有“推荐”字样的规范,为可选规范,具体设计请参照默认生成的Sys.PDM文件。
1.表和字段命名规范1)表必须要有主键,且命名为Id,类型为nvarchar(36)2.字符最大长度不超过4000因为这是oracle数据库字符的最大长度;当字符长度大于等于200的时候,会以大文本的形式展示,如下:3.页面字段展示的顺序按照数据库字段的顺序设计数据库字段的顺序,将是页面字段的展示顺序,请参照2(上图)和4(下图)两图中的字段顺序4.关键字的使用在备注(Comment)中使用关键字1)查询查询关键字会根据字段类型,生成不同的查询样式。
文本使用Like全匹配查询,数字使用区间范围大小查询,日期为区间范围查询,下拉框使用等于查询。
2)精确查询针对文本类型使用精确的等于查询。
3)状态以下拉框的形式展现4)级联自动生成多级联动。
注意:要求写在备注起始的位置,以“父级字段名”+“联动”的形式。
5)RadioButton页面展示如下:5.推荐外键采用表名+Id的形式如:SysPersontId6.不使用bit类型字段为bit的布尔类型,在Sql Server数据库中有使用,但Oracle中没有,所以不建议使用,而改用关键字“状态”的形式代替。
7.视图使用的注意事项视图的查询语句中,select 后面不可以使用* 。
8.上传附件将包含附件的表与FileUploader 附件表产生多对多的关联即可。
codegeex 使用方法【实用版6篇】篇1 目录1.Codegeex 简介2.Codegeex 安装与配置3.Codegeex 使用方法详解4.Codegeex 的优势与应用场景5.总结篇1正文一、Codegeex 简介Codegeex 是一款强大的代码生成工具,可以帮助开发者快速生成高质量的代码,提高开发效率。
它支持多种编程语言,如 Java、Python、C++ 等,适用于各种开发场景。
二、Codegeex 安装与配置1.下载 Codegeex 安装包,并运行安装程序进行安装。
2.安装完成后,启动 Codegeex,根据提示进行配置。
3.配置主要包括设置代码生成模板、编程语言、编码格式等。
三、Codegeex 使用方法详解1.创建代码生成项目:在 Codegeex 中,创建一个新的代码生成项目,根据提示填写项目相关信息。
2.选择代码生成模板:根据项目需求,选择合适的代码生成模板。
Codegeex 提供了多种内置模板,也可以自定义模板。
3.配置代码生成参数:根据项目需求,配置代码生成参数,如数据源、输出目录等。
4.生成代码:点击生成代码按钮,Codegeex 将根据配置的模板和参数,生成相应的代码。
5.查看和编辑生成的代码:Codegeex 生成的代码将保存在指定的输出目录中,可以查看和编辑生成的代码。
四、Codegeex 的优势与应用场景1.提高开发效率:Codegeex 可以快速生成高质量的代码,节省开发时间。
2.代码规范:Codegeex 生成的代码遵循统一的编码规范,有助于团队协作。
3.适应性强:Codegeex 支持多种编程语言和开发框架,适用于各种开发场景。
4.易于维护:Codegeex 生成的代码结构清晰,便于后期维护和扩展。
五、总结Codegeex 是一款实用的代码生成工具,可以帮助开发者快速提高开发效率,节省时间。
通过简单的安装和配置,即可轻松体验 Codegeex 带来的便利。
代码生成器使用方法1.代码生成器简介。
(2)2.代码生成器代码目录介绍 (2)3.使用方法 (3)3.1将代码生成器目录COPY到项目中。
(3)3.2修改BUILD.XML (3)3.3CODEGENCONFIG.XML文件 (4)3.3.1数据库配置 .................................................................................... 错误!未定义书签。
3.3.2模版配置: (4)3.3.2.1单表生成配置: (7)3.3.2.2多表生成配置: (8)3.3.2.3主从表生成配置: (8)4.模版的写法 (9)4.1获取全局变量。
(9)4.2获取表名。
(10)4.3获取表注释 (10)4.4获取表定义的变量。
(10)4.5访问数据库列。
(10)1.代码生成器简介。
1.支持多种数据库代码的生成。
目前支持的数据库有SQL2005,Oracle,mysql。
2.使用freemaker作为模版引擎,可以生成任意类型的模版。
3.支持用户自定义模版,添加到代码生成器中。
4.方便和eclipse,myeclipse等工具集成,使用ANT执行代码生成.5.提供接口,允许用户自定义其他数据库的实现。
6.支持自定义全局变量和表级别变量。
7.在eclipse中支持代码自动提示。
8.支持增量式生成,可以将代码生成以增量的方式生成代码。
9.支持主从表代码生成,主表和从表都支持变量。
可以支持一个主表多个从表的代码生成。
10.支持多个表一次性生成,可以支持生成数据库文档,支持word数据库文档的生成。
2.代码生成器代码目录介绍refLib目录为需要引用的jar包。
Template 是freemaker模版目录。
Codegen.properties 为代码生成时所有到的数据库连接参数Codegenconfig.xml 为代码生成的配置文件。
MyBatisPlus中代码⽣成器使⽤详解按照官⽹上实例尝试了⼀下,感觉MyBatis plus中代码⽣成器还是很强⼤的,以下是测试的总结:使⽤MybatisPlus的主要依赖引⼊plus依赖(苞⽶⾖)<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.1.1</version></dependency>⽣成器依赖<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.1.1</version></dependency>模板依赖<dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.28</version></dependency>测试的pom依赖(也有我测试别东西的依赖,多余的请忽略)<?xml version="1.0" encoding="UTF-8"?><project xmlns="/POM/4.0.0" xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.5.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.wy</groupId><artifactId>testpuls</artifactId><version>0.0.1-SNAPSHOT</version><name>testpuls</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.1.1</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.1.1</version></dependency><dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.28</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>5.1.7.RELEASE</version><scope>compile</scope></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-test</artifactId></dependency><dependency><groupId>com.capgemini.mrchecker</groupId><artifactId>mrchecker-core-module</artifactId><version>4.12.1.1</version></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-spring-service-connector</artifactId><version>2.0.4.RELEASE</version></dependency><dependency><groupId>com.capgemini.mrchecker</groupId><artifactId>mrchecker-core-module</artifactId><version>4.12.1.1</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>代码⽣成器类package com.wy.testpuls.util;import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException; import com.baomidou.mybatisplus.core.toolkit.StringPool;import com.baomidou.mybatisplus.core.toolkit.StringUtils;import com.baomidou.mybatisplus.generator.AutoGenerator;import com.baomidou.mybatisplus.generator.InjectionConfig;import com.baomidou.mybatisplus.generator.config.*;import com.baomidou.mybatisplus.generator.config.po.TableInfo;import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;import java.util.ArrayList;import java.util.List;import java.util.Scanner;public class MyGenerator {public static String scanner(String someThing) {Scanner scanner = new Scanner(System.in);StringBuilder help = new StringBuilder();help.append("请输⼊" + someThing + ":");System.out.println(help.toString());if (scanner.hasNext()) {String sc = scanner.next();if (StringUtils.isNotEmpty(sc)) {return sc;}}throw new MybatisPlusException("请输⼊正确的" + someThing + "!");}public static void main(String[] args) {// 代码⽣成器AutoGenerator mpg = new AutoGenerator();// 全局配置GlobalConfig gc = new GlobalConfig();String projectPath = System.getProperty("user.dir");gc.setOutputDir(projectPath + "/src/main/java");gc.setAuthor("⼭⽯");gc.setOpen(false);mpg.setGlobalConfig(gc);// 数据源配置DataSourceConfig dsc = new DataSourceConfig();dsc.setUrl("jdbc:mysql://localhost:3306/test?useUnicode=true&useSSL=false&characterEncoding=utf8"); dsc.setDriverName("com.mysql.jdbc.Driver");dsc.setUsername("root");dsc.setPassword("admin");mpg.setDataSource(dsc);// 包配置PackageConfig pc = new PackageConfig();pc.setModuleName(scanner("请输⼊你的包名"));pc.setParent("com.wy");//你哪个⽗⽬录下创建包mpg.setPackageInfo(pc);// ⾃定义配置InjectionConfig cfg = new InjectionConfig() {@Overridepublic void initMap() {// to do nothing}};// 如果模板引擎是 freemarkerString templatePath = "/templates/mapper.xml.ftl";// 如果模板引擎是 velocity// String templatePath = "/templates/mapper.xml.vm";// ⾃定义输出配置List<FileOutConfig> focList = new ArrayList<>();// ⾃定义配置会被优先输出focList.add(new FileOutConfig(templatePath) {@Overridepublic String outputFile(TableInfo tableInfo) {// ⾃定义输出⽂件名,如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发⽣变化!!return projectPath + "/src/main/resources/mapper/" + pc.getModuleName()+ "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;}});cfg.setFileOutConfigList(focList);mpg.setCfg(cfg);// 配置模板TemplateConfig templateConfig = new TemplateConfig();// 配置⾃定义输出模板//指定⾃定义模板路径,注意不要带上.ftl/.vm, 会根据使⽤的模板引擎⾃动识别// templateConfig.setEntity("templates/entity2.java");// templateConfig.setService();// templateConfig.setController();templateConfig.setXml(null);mpg.setTemplate(templateConfig);// 策略配置,数据库表配置StrategyConfig strategy = new StrategyConfig();//数据库表映射到实体的命名策略strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表字段映射到实体类的命名策略strategy.setColumnNaming(NamingStrategy.underline_to_camel);//⾃定义继承entity类,添加这⼀个会在⽣成实体类的时候继承entity//strategy.setSuperEntityClass("com.wy.testCodeGenerator.entity");//实体是否为lombok模型strategy.setEntityLombokModel(true);//⽣成@RestController控制器strategy.setRestControllerStyle(true);//是否继承controller// strategy.setSuperControllerClass("com.wy.testCodeGenerator.controller");strategy.setInclude(scanner("表名,多个英⽂逗号分割").split(","));strategy.setSuperEntityColumns("id");//驼峰转连字符串strategy.setControllerMappingHyphenStyle(true);//表前缀strategy.setTablePrefix(pc.getModuleName() + "_");mpg.setStrategy(strategy);mpg.setTemplateEngine(new FreemarkerTemplateEngine());mpg.execute();}}注意:测试时输⼊的表名必须和数据库中⼀致,区分⼤⼩写。
General代码生成器使用说明
目录
1、使用代码生成器生成实体类 (2)
2、批量生成实体类文件 (2)
3、创建自己的模板 (3)
4、代码生成器的配置 (3)
5、使用代码生成器进行SQL查询 (4)
6、使用代码生成器进行数据库比较 (5)
7、使用代码生成器导出数据库文档 (5)
8、使用代码生成器查看类库的映射信息 (6)
1、使用代码生成器生成实体类
2、批量生成实体类文件
3、创建自己的模板
4、代码生成器的配置
5、使用代码生成器进行SQL查询
6、使用代码生成器进行数据库比较
7、使用代码生成器导出数据库文档
8、使用代码生成器查看类库的映射信息。