在数据库验证断言
目的:不能相信接口返回结果,通过到数据库检验可知接口返回结果是否真的正确
如何校验:代码与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