失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 【springboot实战】springBoot+mybatisplus+swagger2

【springboot实战】springBoot+mybatisplus+swagger2

时间:2021-10-17 03:58:16

相关推荐

【springboot实战】springBoot+mybatisplus+swagger2

目录

前言实践测试运行结果总结

前言

在公司的项目中用到了springboot,用到了swagger2这个api框架,持久层实现是jpa。小编结合项目中的框架,整合一下springboot+mybatisplus+swagger2.

实践

一、在idea里安装lombok和mybatisplus插件。

二、添加pom.xml文件依赖

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.6.1</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus</artifactId><version>3.0.5</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.6.1</version></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.3.0</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.0.29</version></dependency><dependency><groupId>javax</groupId><artifactId>javaee-api</artifactId><version>8.0</version></dependency><dependency><groupId>com.dmsdbj.itoo</groupId><artifactId>itoo-tool</artifactId><version>2.0.1-SNAPSHOT</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.1.4</version></dependency></dependencies>

三、swagger配置类

@Configuration@EnableSwagger2public class SwaggerClass {@Beanpublic Docket createRestApi(){return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.basePackage("com.yye.springboot.controller")).paths(PathSelectors.any()).build();}public ApiInfo apiInfo(){return new ApiInfoBuilder().title("springboot结合swagger构建api文档").description("简单优雅的restful风格,/yye894817571").termsOfServiceUrl("").version("1.0").build();}}

四、在application.properties文件中添加数据库链接和Mybatis配置

spring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.datasource.url=jdbc:mysql://localhost:3306/itoo_exam?serverTimezone=CTT&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=truespring.datasource.username=rootspring.datasource.password=12345678mybatis.config-location=classpath:mybatis/config/mybatis-config.xmlmybatis.mapper-locations=classpath:mybatis/mapper/*.xml

五、添加mybatis-config.xml文件

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-////DTD Config 3.0//EN""/dtd/mybatis-3-config.dtd"><configuration></configuration>

测试

entity类

package com.yye.springboot.entity;import com.baomidou.mybatisplus.annotation.TableName;import com.dmsdbj.itoo.tool.base.entity.BaseEntity;import io.swagger.annotations.ApiModel;import io.swagger.annotations.ApiModelProperty;import lombok.Data;import lombok.EqualsAndHashCode;import lombok.NoArgsConstructor;import lombok.ToString;import lombok.experimental.Accessors;import javax.persistence.Column;import java.io.Serializable;@ApiModel(value = "PaperRecordEntity:答题记录表")@Data@NoArgsConstructor@Accessors(chain = true)@ToString(callSuper = true)@EqualsAndHashCode(callSuper = true)@TableName("te_paper_record")public class PaperRecordEntity extends BaseEntity implements Serializable {/*** 考生_id*/@ApiModelProperty(value = "考生_id",required = true)@Column(name = "examinee_id")private String examineeId;/*** 课程_id*/@ApiModelProperty(value = "课程_id",required = true)@Column(name = "course_id")private String courseId;/*** 考试_id*/@ApiModelProperty(value = "考试_id",required = true)@Column(name = "examination_id")private String examinationId;/*** 模板_id*/@ApiModelProperty(value = "模板_id",required = true)@Column(name = "template_id")private String templateId;/*** 父题目id*/@ApiModelProperty(value = "父题目id")@Column(name = "parent_id")private String parentId;/*** 题型_id*/@ApiModelProperty(value = "题型_id",required = true)@Column(name = "question_type_id")private String questionTypeId;/*** 题干_id*/@ApiModelProperty(value = "题干_id",required = true)@Column(name = "question_id")private String questionId;/*** 考试分类id*/@ApiModelProperty(value = "考试分类id",required = true)@Column(name = "exam_classify_id")private String examClassifyId;/*** 标准分数*/@ApiModelProperty(value = "标准分数",required = true)@Column(name = "standard_score")private Double standardScore;/*** 判分状态(0未判 ,1 已判 ,2 已汇总)*/@ApiModelProperty(value = "判分状态(0未判 ,1 已判 ,2 已汇总)",required = true)@Column(name = "mark_status")private Integer markStatus;/*** 正确答案*/@ApiModelProperty(value = "正确答案")@Column(name = "correct_answer")private String correctAnswer;@ApiModelProperty(value = "正确答案HTML格式")@Column(name = "correct_answer_html")private String correctAnswerHtml;/*** 学生答案*/@ApiModelProperty(value = "学生答案")@Column(name = "student_answer")private String studentAnswer;/*** 学生答案HTML格式*/@ApiModelProperty(value = "学生答案HTML格式")@Column(name = "student_answer_html")private byte[] studentAnswerHtml;/*** 学生答案原格式*/@ApiModelProperty(value = "学生答案原格式")@Column(name = "student_answer_array_str")private String studentAnswerArrayStr;/*** 学生得分*/@ApiModelProperty(value = "学生得分")@Column(name = "score")private Double score;/*** 判分老师*/@ApiModelProperty(value = "判分老师")@Column(name = "mark_user")private String markUser;/*** 试题顺序*/@ApiModelProperty(value = "试题顺序")@Column(name = "question_order")private Integer questionOrder;/*** 是否乱序(0 否,1 是)*/@ApiModelProperty(value = "是否乱序(0 否,1 是)")@Column(name = "is_out_of_order")private Integer isOutOfOrder;/*** 是否别名(0 否,1 是)*/@ApiModelProperty(value = "是否别名(0 否,1 是)")@Column(name = "is_alias")private Integer isAlias;/*** 更新答题记录的来源(0默认值,1从在线考试跟新,2来自json导入)*/@ApiModelProperty(value = "更新答题记录的来源(0默认值,1从在线考试跟新,2来自json导入)")@Column(name = "origin")private Integer origin;/*** 历史分id*/@ApiModelProperty(value = "历史分id")@Column(name = "history_id")private String historyId;/*** 版本(默认为1,以后是2,3,4....)*/@ApiModelProperty(value = "版本(默认为1,以后是2,3,4....)",required = true)@Column(name = "version")private Integer version;/*** 时间戳*/@ApiModelProperty(value = "时间戳",required = true)@Column(name = "timespan")private String timespan;}

添加mapper文件

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-////DTD Mapper 3.0//EN" "/dtd/mybatis-3-mapper.dtd" ><mapper namespace="com.yye.springboot.dao.PaperRecordDao"><select id="queryLikeExamineeId" resultType="com.yye.springboot.entity.PaperRecordEntity">SELECT * FROM te_paper_record fWHEREf.is_delete=0<if test="examineeId !=''"><bind name="pattern" value="'%' + examineeId + '%'"/>ANDf.id LIKE #{pattern}</if>order byf.create_time desc</select></mapper>

Dao类

@Repository("paperRecordDao")@Mapperpublic interface PaperRecordDao extends BaseMapper<PaperRecordEntity> {//region 模板生成:模糊查询/*** 根据考生_id模糊查询paperRecord** @param examineeId 考生_id* @return 模糊查询的paperRecord集合* @author 杨月娥* @since 2.0.0 -6-17 19:00:49*/List<PaperRecordEntity> queryLikeExamineeId(@Param("examineeId") String examineeId);}

service接口

public interface PaperRecordService extends BaseServicePlus<PaperRecordEntity> {PageInfo<PaperRecordEntity> queryLikeExamineeId(String examineeId,Integer pageNo,Integer pageSize);}

service实现类

@Service("paperRecordService")public class PaperRecordSericeImpl extends BaseServicePlusImpl<PaperRecordDao,PaperRecordEntity> implements PaperRecordService {@Autowiredprivate PaperRecordDao paperRecordDao;@Overridepublic PageInfo<PaperRecordEntity> queryLikeExamineeId(String examineeId, Integer pageNo, Integer pageSize) {PageHelper.startPage(pageNo,pageSize);return new PageInfo<>(paperRecordDao.queryLikeExamineeId(examineeId));}}

controller类

@RequestMapping(value = "/papersRecord")@RestControllerpublic class PaperRecordController {@Autowiredprivate PaperRecordService paperRecordService;@ApiOperation(value = "根据id模糊查询paperRecord")@GetMapping(value = {"/queryLikeExamineeId/{id}/{pageNo}/{pageSize}"})public ItooResult queryLikeExamineeId(@ApiParam(value = "主键id",required = true)@PathVariable String id,@ApiParam(name="pageNo",value = "页码",required = true,example = "1")@PathVariable Integer pageNo,@ApiParam(name = "pageSize",value = "页数",required = true,example = "10") @PathVariable Integer pageSize){PageInfo<PaperRecordEntity> pageInfo = paperRecordService.queryLikeExamineeId(id,pageNo,pageSize);return ItooResult.build(ItooResult.SUCCESS,"查询成功",pageInfo);}}

运行结果

一、swagger页面

二、输入参数执行

总结

至此,springboot+mybatisplus+swagger2整合完毕,小编用了lombok插件,省去了实体类里的getter和setter方法,是代码更为简洁。mybatisplus较mybatis用起来更舒心,只需要在service和dao层分别继承了BaseServicePlus和BaseMapper,省去了之前很多具体实体类的mapper.xml和example文件,只需要根据业务在相应的mapper文件里写一些复杂SQL即可。

如果觉得《【springboot实战】springBoot+mybatisplus+swagger2》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。