本篇文章讲解的是通过api去管理mysql内存储的测试数据,使用的是SpringBoot框架,同样是使用java语句。
关于SpringBoot的环境搭建,在之前的文章内讲解过,本篇不做过多叙述,有疑问的小伙伴请戳:
https://editor.csdn.net/md?not_checkout=1&articleId=122311170

本篇仍以登录接口举例进行讲解,首先贴出项目结构

因为我实现的是对每一张表的增删改查,不涉及连表查询,不涉及其他的逻辑控制,所以目录结构比较简单,controller层内是api的代码实现,model层是数据声明,mapper文件下放置各表操作的sql语句。下面是具体的代码讲解:

1.model层

login_case表中包含以下字段:id、mobile、password、device_uid、loginType
新建LoginCase类,使用lombok的Data注解

package com.course.model;
import lombok.Data;@Data
public class LoginCase {private int id;// 用户登录手机号private String mobile;// 用户登录密码private String password;// 设备idprivate String device_uid;// 登录方式private String loginType;
}

2.xml文件
mapper文件下新建login.xml文件。一共包含4条语句,查询单条信息、查询全表、删除单条、插入单条、更新单条。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.course.controller.LoginController"><sql id="Login_Case_List" >id, mobile, password, device_uid, loginType</sql><!--根据id查询某条信息--><select id="loginSelectById" resultType="com.course.model.LoginCase" parameterType="Integer" >select<include refid="Login_Case_List" />from login_casewhere id = #{id,jdbcType=INTEGER}</select><!--获取所有数据--><select id="loginGetAll" resultType="com.course.model.LoginCase">select<include refid="Login_Case_List"/>from login_case</select><!--根据id删除某条信息--><delete id="loginDeleteById" parameterType="Integer">deletefrom login_casewhere id = #{id,jdbcType=INTEGER}</delete><!--插入一条数据--><insert id="loginInsertData" parameterType="com.course.model.LoginCase" keyProperty="id" useGeneratedKeys="true">insert into login_case<trim prefix="(" suffix=")" suffixOverrides=","><if test="mobile != null">mobile,</if><if test="password != null">password,</if><if test="device_uid != null">device_uid,</if><if test="loginType != null">loginType,</if></trim><trim prefix="values (" suffix=")" suffixOverrides="," ><if test="mobile != null" >#{mobile,jdbcType=VARCHAR},</if><if test="password != null" >#{password,jdbcType=VARCHAR},</if><if test="device_uid != null" >#{device_uid,jdbcType=VARCHAR},</if><if test="loginType != null" >#{loginType,jdbcType=VARCHAR},</if></trim></insert><!--根据id更新数据--><update id="loginUpdateById" parameterType="com.course.model.LoginCase">update login_case<set><if test="mobile != null">mobile = #{mobile,jdbcType=VARCHAR},</if><if test="password != null" >password = #{password,jdbcType=VARCHAR},</if><if test="device_uid != null" >device_uid = #{device_uid,jdbcType=VARCHAR},</if><if test="loginType != null" >loginType = #{loginType,jdbcType=VARCHAR},</if></set>where id = #{id,jdbcType=INTEGER}</update></mapper>
其中有一个特殊的是插入单条数据的sql语句,这时候返回结果是插入数据后,在mysql内存的id

3.control层
因为我的项目集成了swaggerUI(第三方框架,可自动生成Api文档),所以在以下代码中,我会注明是SpringBoot的注解还是swaggerUI的注解,如果不使用swaggerUI可无视它的注解。

对swaggerUI感兴趣的请戳:
https://editor.csdn.net/md?not_checkout=1&articleId=122311204

以下是接口实现部分代码:

package com.course.controller;import com.course.model.LoginCase;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;import java.util.List;@RestController
@Api(value = "/login",description = "login_case表")  //swaggerUI注解
@RequestMapping("/login")     //spring注解,接口路径
public class LoginController {@Autowiredprivate SqlSessionTemplate template;/*** 获取表完整数据*/@GetMapping(value = "/getall")  //spring注解,接口路径@ApiOperation(value = "获取表完整数据",httpMethod = "GET") //swaggerUI注解public List<LoginCase> getAllLoginCase(){return template.selectList("loginGetAll");}/*** 单条数据查询*/@GetMapping(value = "/getcase/{id}")  //spring注解,接口路径@ApiOperation(value = "单条数据查询",httpMethod = "GET")  //swaggerUI注解public LoginCase getOneLoginCase(@PathVariable("id") Integer id){return template.selectOne("loginSelectById",id);}/*** 新增单条数据*/@PostMapping(value = "/addcase")  //spring注解,接口路径@ApiOperation(value = "新增单条数据",httpMethod = "POST")  //swaggerUI注解public String insertLoginCase(@RequestBody LoginCase loginCase){template.insert("loginInsertData",loginCase);return  "新增数据id ="+loginCase.getId();}/*** 删除单条数据*/@PostMapping(value = "/deletecase")  //spring注解,接口路径@ApiOperation(value = "删除单条数据",httpMethod = "POST")  //swaggerUI注解public String deleteLoginCase(@RequestBody Integer id){template.delete("loginDeleteById",id);return "删除成功!";}/*** 修改单条数据*/@PostMapping(value = "/updatecase")  //spring注解,接口路径@ApiOperation(value = "修改单条数据",httpMethod = "POST")  //swaggerUI注解public String updateLoginCase(@RequestBody LoginCase loginCase){template.update("loginUpdateById",loginCase);return "更新成功!";}}

template的执行方法中,以“template.selectOne(“loginSelectById”,id);”举例,loginSelectById是xml文件中对应sql语句的id,”id”是接口的入参。

到这里,login_case单张表的增删改查就全部实现了,运行一下Application文件,可以看到启用成功。


这时候可以调用接口去获取数据,也可以通过swaggerUI进行接口调试

第四:SpringBoot生成Api管理mysql内保存的测试数据(接口自动化平台扩展)相关推荐

  1. python api开发用什么框架_python+requests接口自动化框架

    为什么要做接口自动化框架 1.业务与配置的分离 2.数据与程序的分离:数据的变更不影响程序 3.有日志功能,实现无人值守 4.自动发送测试报告 5.不懂编程的测试人员也可以进行测试 正常接口测试的流程 ...

  2. 将项目生成api及maven依赖,用feign暴露接口给外部调用

    首先写一个某接口的feign,对外暴露接口 1.controller @Api(tags = "用户管理内部接口") @RestController @RequestMapping ...

  3. 红帽计划收购API管理领导者3scale

    2016年7月5日,世界领先的开源解决方案供应商红帽公司日前宣布,公司已经签署一项关于收购应用编程接口 (API) 管理技术的领先提供商3scale的最终协议.通过将3scale加入到现有产品组合中, ...

  4. 接口自动化之操作mysql数据库

    接口自动化之操作mysql数据库 在接口自动化测试过程中并不像UI自动化测试一样存在界面可以通过界面数据校验正确性,除了可以通过接口返回的数据校验还可以通过操作数据库校验数据,那么我们该如何做接口自动 ...

  5. springboot api文档_SpringCloud/SpringBoot - 自动生成API文档

    SpringCloud/SpringBoot 的项目一定要前后分离,这就需要一个API文档生成的工具,后端一定要和前端或者是移动端对接接口,那么问题来了,接口是不是要自己写给他们看,一般的会采用Exc ...

  6. SpringBoot 自动生成API文档

    SpringBoot 自动生成API文档 在做项目的时候,如果项目是前后分离的,后端一定要和前端或者是移动端对接接口,那么问题来了,接口是不是要自己写给他们看,一般的会采用Excel或者Word来写, ...

  7. springboot 集成 swagger 自动生成API文档

    Swagger是一个规范和完整的框架,用于生成.描述.调用和可视化RESTful风格的Web服务.简单来说,Swagger是一个功能强大的接口管理工具,并且提供了多种编程语言的前后端分离解决方案. S ...

  8. 无需注解快速生成API文档,跟SpringBoot绝配

    做技术管理的童鞋,往往会陷入这样一种困境:疲于奔命,到处救火填坑,沟通推进,却挤不出时间思考对团队和项目来说真正重要的事情. 你有没有经历过这样的场景: 1.下属老是改了接口但不维护文档,屡说不改 2 ...

  9. 解放双手!无需注解快速生成API文档,跟SpringBoot绝配!

    你有没有经历过这样的场景: 1.下属老是改了接口但不维护文档,屡说不改 2.后端改了接口没有及时通知前端和测试,导致下游环节的同事来投诉 3. 由于团队每个角色使用的工具不同,工具之间的数据又无法兼容 ...

最新文章

  1. XML – E4X概述
  2. SNMP系统信息获取工具onesixtyone
  3. linux下的几种进程间通信方式的特点
  4. 如何用java实现加减_用Java实现不用加减乘除做加法操作
  5. leetcode53. 最大子序和详解——pygo
  6. linux内核中的hook函数详解,linux内核中的hook函数详解
  7. 2015年3月29号日报
  8. 给Editplus去掉.bak文件
  9. POJ 1696 Space Ant(点积的应用)
  10. 2018.12.2 中国石油大学第一次新生训练赛题解
  11. 全球六大国际域名解析量:.COM第一 环比净增31.5万
  12. 神通数据库常见问题解决方案
  13. Halcon教程十二:回形针识别进阶
  14. Andro Studio 基于Zing一维码二维码扫描代码
  15. 如何将ppt批量转换成pdf?
  16. FPGA学习笔记(八)同步/异步信号的打拍分析处理及亚稳态分析
  17. math ceil函数python_Python ceil函数
  18. 密歇根安娜堡大学计算机科学教授,UMich的EECS「密歇根大学安娜堡分校电气工程与计算机科学系」...
  19. 课程设计实验--火车票座位分配
  20. 工业网关控制器CK-GW06-E01与欧姆龙 PLC配置说明

热门文章

  1. 编程—休息片刻的好处
  2. C++库研究笔记——Linux下是否需要使用memory pool?
  3. 循证e刊 安慰剂的前世今生
  4. 使用Python+md5删除本地重复(同一张不重名)的照片
  5. SSM框架之多数据源配置
  6. ASP.NET MVC 使用 Log4net 记录日志
  7. oracle查锁及解锁命令
  8. Android——倒计时跳转+sharedpreferences
  9. 20145231熊梓宏 《网络对抗》 实验四 恶意代码分析
  10. vijos训练之——星辰大海中闪烁的趣题