既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
适当使用上述对象的 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。
3、在下好的jar包目录下输入命令 java -jar swagger-codegen-cli-2.2.1.jar generate -i https://petstore.swagger.io/v2/swagger.json -l java -o samples/client/pestore/java
则会把该json文件进行解析编译再写到-o后指定的文件路径。
4、最后输出的文件如下,里面包含API、Model等,这里是由于没有把一些依赖引入,
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**