数据库断言

server/2024/10/22 17:19:41/

数据库验证断言

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

如何校验:代码与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

 


http://www.ppmy.cn/server/51478.html

相关文章

已经被驳回的商标名称还可以申请不!

看到有网友在问,已经驳回的商标名称还可以申请不,普推商标知产老杨觉得要分析看情况,可以适当分析下看可不可以能申请,当然最终还是为了下证 ,下证概率低的不建议申请。 先看驳回理由,如果商标驳回是绝对理…

我在高职教STM32——LCD液晶显示(3)

大家好,我是老耿,高职青椒一枚,一直从事单片机、嵌入式、物联网等课程的教学。对于高职的学生层次,同行应该都懂的,老师在课堂上教学几乎是没什么成就感的。正因如此,才有了借助 CSDN 平台寻求认同感和成就…

查找和排序

目录 一、查找 1.1查找的基本概念 1.2顺序查找 1.3折半查找(二分查找) 1.4散列表的查找 1.4.1基本概念 1.4.2散列函数的构造方法 1.4.3解决冲突的方法 二、排序 2.1排序的基本概念 2.2插入排序 2.2.1直接插入排序: 2.2.2希尔排序…

Redisson-DelayedQueue-原理

归档 GitHub: Redisson-DelayedQueue-原理 Unit-Test RedissonDelayedQueueTest 常规测试 Test public void testCommon() throws InterruptedException {RBlockingQueue<String> destinationQueue redisson.getBlockingQueue("delay_queue"); // 目标队…

Linux使用——查看发行版本、内核、shell类型等基本命令

先做快照 虚拟机中编辑网络 关机 普通账户和管理员账户 互相对照 localhost相当于IP 参数: 短格式:以减号(-)开头&#xff0c;参数字母 长格式:以2个减号(--)后跟上完整的参数单词 当前发行版本 [rootserver ~]# cat /etc/redhat-release Red Hat Enterprise Linux release 9.…

网络分层之7层讲解

网络分层 网络分层就是将网络节点所要完成的数据的发送或转发、打包或拆包&#xff0c;控制信息的加载或拆出等工作&#xff0c;分别由不同的硬件和软件模块去完成。 一、物 理 层(Physical Layer) 要传递信息就要利用一些物理媒体&#xff0c;如双纽线、同轴电缆等&#xff…

html--404页面

<!DOCTYPE html> <html> <head> <meta http-equiv"Content-Type" content"text/html; charsetUTF-8"> <meta http-equiv"X-UA-Compatible" content"IEedge,chrome1"> <title>404 错误页面不存在&…

代码随想录算法训练营刷题复习10:二叉树、二叉搜索树复习2

二叉树、二叉搜索树 力扣题复习 110. 平衡二叉树257. 二叉树的所有路径404. 左叶子之和513. 找树左下角的值112.路径之和113.路经总和ii450. 删除二叉搜索树中的节点701. 二叉搜索树中的插入操作 110. 平衡二叉树 左右子树高度差要小于1 ->递归调用&#xff08;need新的函…