一、在学习处理查询结果集之前,我们先了解以下的一些常用接口以及方法
1、public interface ResultSet
extends Wrapper, AutoCloseable
ResultSet接口:表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。
2、ResultSet executeQuery(String sql) throws SQLException
参数 :sql - 要发送到数据库的SQL语句,通常是静态SQL SELECT语句
执行给定的SQL语句,该语句返回单个ResultSet对象。
3、getString
String getString(int columnIndex) throws SQLException
以Java编程语言中 String此 ResultSet对象的当前行中指定列的值。
参数:
columnIndex - 第一列是1,第二列是2,...
结果
列值; 如果值为SQL NULL ,则返回的值为null
4、next
boolean next() throws SQLException
将光标从当前位置向前移动一行。 ResultSet光标最初位于第一行之前; 第一次调用方法next使第一行成为当前行; 第二个调用使第二行成为当前行,依此类推。
当对next方法的调用返回false ,光标位于最后一行之后。
结果:
true表示新的当前行有效; false表示没有更多行
JDBC API主要功能:
-
DriverManager: 管理JDBC驱动
-
Connection:连接
-
Statement:增删查改
-
PreparedStatement:增删查改
-
esultSet:返回的结果集
到此为止,我们就可以实现JDBC连接数据库,处理查询结果集了。
二、处理查询结果集
import java.sql.*;
public class JDBCtest {
public static void main(String[] args) {
Connection conn = null;
Statement statement = null;
ResultSet rs = null;
try{//1、注册驱动
Class.forName("com.mysql.jdbc.Driver");
//2、获取数据库连接
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/sql","root","123456");
//3、获取数据库操作对象
statement = conn.createStatement();
//4、执行sql
String select = "select * from t_user";
rs = statement.executeQuery(select);//专门执行DQL语句的方法
//5、处理查询结果集
/*Boolean flag = rs.next();//如果为true则表示表中有数据
if (flag){
//光标指向的行有数据
//getString()方法的特点是:不管数据库中的数据类型是什么,都以String的形式取出
//以下程序的1,2,3,4说的都是第几列(列数)
String id = rs.getString(1);;//JDBC中所有下标都是从1开始的
String username = rs.getString(2);
String password = rs.getString(3);
System.out.println(id+","+username+","+password);//1,jack,456
}*/
//但是上面的这种方式太繁琐了,一次是输出一行的数据,所以在这里可以进一步的优化:
while (rs.next()){
//而且这里也可以使用字段名,代替数字
//注意,如果上面的查询语句中使用了as,即给某一列指定了别名,在这里也就一定要用别名
String id = rs.getString("id");
String username = rs.getString("username");
String password = rs.getString("password");
System.out.println(id+","+username+","+password);
//在这里还有一点就是:可以以其它的数据类型取出,
//取出什么类型的数据,就get该类型即可:比如int类型的id
//int id = rs.getInt("id");
}
}catch (SQLException e){
e.printStackTrace();
}catch(ClassNotFoundException e){
e.printStackTrace();
}finally {//6、释放资源
try{
if (rs!=null){
rs.close();
}
}catch (SQLException e){
e.printStackTrace();
}
try{
if (statement!=null){
statement.close();
}
}catch (Exception e){
e.printStackTrace();
}
try{
if (conn!=null){
conn.close();
}
}catch (Exception e){
e.printStackTrace();
}
}
}
}
输出结果:
/* 1,jack,456 2,rose,1456 3,zs,102 4,ls,101 */
好了,以上就是JAVA对JDBC操作的一种实现方式,与大家一起共享,对初学者可能有一定的帮助,当然对高手而 言,用处就不见的大了。
你的问题得到解决了吗?欢迎在评论区留言,提出更好的意见和建议 。