MyBatis-Generator和Swagger-Codegen_mybatisgenerator swagger(1)

12 篇文章 0 订阅
11 篇文章 0 订阅

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

生成不同类型的 POJO 层次结构 - 例如,如果您愿意,您可以选择为每个表生成单个域对象。在某些情况下,MBG 会生成 MyBatis3 Compatible SQL Map XML Files。MBG 为配置中的每个表上的简单 CRUD 函数生成 SQL。生成的 SQL 语句包括:

  • insert
  • update by primary key
  • update by example (using a dynamic where clause)
  • delete by primary key
  • delete by example (using a dynamic where clause)
  • select by primary key
  • select by example (using a dynamic where clause)
  • count by example

适当使用上述对象的 Java 或 Kotlin 客户端类、接口和 Kotlin 扩展方法。客户端类的生成是可选的。MBG 将生成一个与 MyBatis 3.x 映射器基础设施配合使用的映射器接口。

依赖

            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-generator</artifactId>
                <version>3.2.0</version>
            </dependency>

IDEA生成代码过程

写一个代码生成类,建立数据库连接,com.baomidou.mybatisplus.generator.AutoGenerator对象获取全局配置、数据库配置等信息,执行execute方法自动生成代码,如下,

  • model文件夹中包含数据库表对应的实体类(数据库字段与实体类成员一一对应),或者称之为域模型。
  • mapper文件夹中包含mapper接口和mapper.xml映射文件,mybatis通过JDK动态代理生成实现类完成SqlSession对象SQL语句执行。
  • service文件夹中有实体类对应的服务类接口和服务实现类,具体提供的服务类接口由我们自己实现。
  • web文件夹中的类提供可以访问的http接口。

上面的四个文件夹是在给AutoGenerator对象注入PackageConfig信息时写的输出文件夹包路径,model中的java文件放在Model层(数据访问层),mapper中的java文件放在DAO层(数据持久层),servcie中的java文件放在service层(业务逻辑层),web中的java文件放在controller层(控制层)。

MyBatis的mapper参数传递#{}和${}区别:

  • #{} 实现的是sql语句的预处理参数,之后执行sql中用?号代替,使用时不需要关注数据类型,Mybatis自动实现数据类型的转换。并且可以防止SQL注入。
  • ${} 实现是sql语句的直接拼接,不做数据类型转换,需要自行判断数据类型。不能防止SQL注入。

另外,对实体类/域模型我们还可以做一些操作:

  • 添加@Data在实体类上,编译时自动生成各个成员变量的get、set方法。
  • 添加@NoArgsConstructor、@AllArgsConstructor在实体类上,编译时自动生成无参和全部参数的构造方法。
  • 添加@Builder在实体类上,通过建造者设计模式简化对象实例化时添加属性值。
  • 添加@Pattern(regexp=“”)在成员变量上,通过正则表达式限制成员变量属性值。

前几个注解是lombok包下的注解,最后一个validation包下的注解。

如下图,springboot编译生成的文件都在target目录下,lombok的注解直接帮忙生成了上面那些方法。

Swagger-CodeGen

介绍

swagger-codegen 包含一个模板驱动的引擎,通过解析 OpenAPI / Swagger 定义来生成不同语言的文档、API 客户端和服务器存根。

代码生成过程

swagger-codegen可以很简单的生成服务端的代码。举个例子,

1、首先我们在下面的网页下载swagger-codegen客户端:

https://oss.sonatype.org/content/repositories/releases/io/swagger/swagger-codegen-cli/2.2.1/swagger-codegen-cli-2.2.1.jar

2、任何服务器对外开放使用swagger-ui的页面:https://petstore.swagger.io/,它开放的接口的json文件是https://petstore.swagger.io/v2/swagger.json,记录下服务器端的json文件url。

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

如果你需要这些资料,可以戳这里获取

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值