上两篇我们讲述了 Statement 和 PreparedStatement 这两个操作数据库的重要接口,这一篇我们开始使用 PreparedStatement 去查询数据库中的数据

一、executeQuery 和 ResultSet 的引入

我们先来介绍这一篇博客的重点

1. executeQuery

这个 executeQuery 是用来将我们的查询SQL语句所查到的结果集进行处理并且返回的。

2. ResultSet

这个就是结果集所封装的一个集合,我们所查询到的数据就都在这个里面,我们到时候去遍历这个集合即可拿到数据。

二、实际操作

简单介绍之后,我们来实际操作一下,先弄一个新的类,SelectQueryExecuteQuery,这里呢,我们就查询 t_log 表中的数据

Java Database Connectivity——4. 使用Result查询结果集

然后我们使用 pstate 去调用 executeQuery 方法,将我们的值查询出来

Java Database Connectivity——4. 使用Result查询结果集

这里获取到 ResultSet 之后,我们进行判断,ResultSet 中有一个 next 方法,如果下一个还有数据,就返回 true,如果没有,就是 false。我们使用 while 循环

Java Database Connectivity——4. 使用Result查询结果集

获取值的话有两种方式

一个是通过列所在的位置,也就是传一个 columnIndex,好比我们这个 t_log 表

Java Database Connectivity——4. 使用Result查询结果集

getInt(1) 就是获取到 id 

getString(2) 就是获取到 content

getDate(3) 就是获取到 createDt

这里要说一下,要获取也得要使用对的属性进行获取,不能说返回一个字符串,你去使用 getInt 去获取,这样是会报错的

我们来试一下

Java Database Connectivity——4. 使用Result查询结果集

Java Database Connectivity——4. 使用Result查询结果集

是OK的啊,因为数据比较多,我删了一部分,但是不碍事。

除去这样去获取,我们还可以使用字段名去获取,再来看一下

Java Database Connectivity——4. 使用Result查询结果集

也是OK的啊

这里我要说一下,我们以后使用第二种方法去获取值,因为数据库表中的字段名字我们是很少去更换的,但是这个顺序,我们可能调整,如果一旦调整,我们这个就会报错,这里大家要记得一下

 

虽然这个将所有的值都带回来了,但是我们可以看到,这个日期是不对的,只有年月日,我们明明存的时候是有时分秒的,这里我们简单修改一下就可以了,我们不适用 getDate 去获取日期,我们改成 getString 去获取,再来看一下

Java Database Connectivity——4. 使用Result查询结果集

这样就OK了

 

大家下去练习一下,有问题加我 QQ : 2100363119

相关文章: