数据库断言

发布于:2024-06-23 ⋅ 阅读:(94) ⋅ 点赞:(0)

在数据库验证断言

目的:不能相信接口返回结果,通过到数据库检验可知接口返回结果是否真的正确

如何校验:代码与mymql建立网络连接,操作数据库,断开连接

代码:java操作数据库

pom文件配置依赖

步骤:新建类dbassert

增加注解

 引入的源码DriverManager-驱动管理器

这个源码的作用是操作数据库

使用getconnection的方法,建立网络连接包含哪些:需要包含url,user,possword

列出初始化url,user,password

其中url都是什么含义:jdbc数据库连接:mysql://ip地址:端口:数据库项目名称?字符编码格式是utf-8,ssl安全证书没有打开

返回值是connection类

引入connection类

这个类也是jdk自带的类,其中有close方法,就完成了连接和关闭的步骤

在connection类中找perparedstatement方法

目的:得到perparedstatement对象发送参数化的sql语句到数据库

规范:这个sql语句可以参数化也可以不参数化,也可以进行预编译(检查语法对不对),可以高效的执行很多次

 

因此

操作数据库的步骤里用connection调用这个方法,传入sql ,写查询sql语句

ps对象能干嘛?

这个ps对象里传入的是非参数化sql,也可以进行检查语法对不对,再次查询时,就不用再检查,就存储在数据库中

存储sql+以后运行高效+发送sql到远程数据库服务器

查询sql的方法executequery,得到结果集

增删改sql,得到结果

因为返回值时resultset不是八大数据类型,无法打印结果,所以需要在源码中在寻找方法

resultset源码类

next方法

传入一整个表,即游标制定第1行结果,操作第1行数据

 按照表里下标每一行进行循环,每打印一次换一次行

也可以使用标签进行循环

方法总结

 关闭结果遍历

关闭ps,不需要远程发送sql


封装方法

复制下方代码到封装代码中,

方法名称,传入参数是字符串类型sql,不能把下方的sql写死

更改循环

原本循环是写死的,int数据类型,string/string数据类型,可以让这些表格内容为json格式,放入key和value,value是列值,key是列标签,(admin_id=123456)

3总列数是不知道的,所以需要设置变量coumncount列的总数

所以总列数和列标签拿不到?该怎么去找

 引入源码-填写备注

resultset结果集的源码中

解决总列数:rs调用getmetadata方法,获取数据源,得到rsmd结果,结果在调用getcolumncount(获取列计数)

解决列标签

用rsmd调用getcolumnlabel(获取列标签)

将i的最大值改为columncount

怎么循环

遍历行+基于行遍历每一列

循环的结果添加到json数组里,所以建一个新的json数组,这个数据添加的对象就是我们得到的sql表格

先建一个空的数组,开始循环,添加列标签,添加列值,成为json数组

 补齐方法返回值

添加注解

定义常量

测试

以json串的形式打印出来

 

另一条case