ResultSet接口
- Statement执行SQL语句时返回ResultSet结果集
- ResultSet提供的检索不同类型字段的方法:(常用)
getString()获得在数据库里时varchar,char等数据类型的对象
getFloat()获得在数据库里时Float类型的对象
getDate()获得在数据库里是Date类型的数据
getBoolean()获得在数据库里是Boolean类型的数据
连接关闭问题
遵循:resultset–>statment–>connection这样的关闭顺序!一定要将三个trycatch块分开写(后开的先关)
package com.first.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* 测试ResultSet结果集的基本用法
*/
public class Demo04 {
public static void main(String[] args) {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;//接口
try {
//加载驱动类
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbc","root","root");
String sql = "select id,username,pwd from t_user where id>?"; //?占位符
ps = conn.prepareStatement(sql);
ps.setObject(1, 2); //从第一个开始把id大于2的记录都取出来
rs = ps.executeQuery();
while(rs.next()){//移动游标,同时返回Boolean,看是否有下一条
System.out.println(rs.getInt(1)+"---"+rs.getString(2)+"---"+rs.getString(3));
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally{
//遵循:resultset-->statment-->connection这样的关闭顺序!一定要将三个trycatch块,分开写!
try {
if(rs!=null){
rs.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if(ps!=null){
ps.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if(conn!=null){
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}