JDBC案例3
1.回顾案例2
从案例2我们进行了增删改操作,都是使用executeUpdate()方法,返回值都是1
现在使用查询操作,因为查询是要获取结果集(二维的),所以使用executeQuery()方法,
返回的数据类型是ResultSet
2.直接上代码
1.先准备数据表
准备的一条数据
细节:id是主键,自增长
username是字符串类型
password也是
nickname这个字段也是
不一定都要写,写一个id和username也可以
2.获取结果集
细节:因为直接我们进行的是update操作,所以现在进行query操作,要更新sql语句
以及Preparedstatement对象对应的应该是查询的
得到的结果集ResultSet类型,是一个二维的
next()指光标往下移动一行好比上面这张数据表,往下一行就是读取一条记录
接下来就是到了每行怎么读取数据
3.读取数据
从结果集中读取数据,肯定是get啦,getInt()表示读取int类型,
我们的数据表的id是int类型,所以用它,为什么传入的参数是"id"???
因为数据表的字段名是id,所以传入"id"
细节,当我们传入数据表的字段名时,是传入字符串,可不是直接getInt(id)!!!
4.测试输出
结果
细节:
1.不难发现 executeUpdate()方法,只要执行了,也就是sql语句格式正确,但是没有达到你要的效果,它也是返回1这个返回值.有点拗口,解释下
解释: 我数据表就一条数据,id是等于1的,而我想要删除id=2的这条记录,虽然没有真的删除,但是它确实执行了,也就意味着它这条sql执行成功便返回1,不管是否真的影响了数据表
2.理解这个next()方法,它就是起一个引导作用,引导结果集读取哪行数据,它的返回值是boolean类型,而我们使用了while死循环,只有false时才会退出,也就是指的这行数据不存在数据时才会退出!!!