第五步:处理查询结果集(遍历结果集)只有在select语句时才会处理,增删改(insert、delete、update)没有第五步
三种遍历结果集方式:
第一方式: 数字1,2,3代表每行的第1,2,3列,循环输出每行;
String empno = rs.getString(1);
String ename = rs.getString(2);
String sal = rs.getString(3);
System.out.println(empno + “,” + ename + “,” + sal);
第三方式:除了可以String类型取出之外,还可以以特定的类型取出,特定类型可以进行数学运算.
int empno = rs.getInt(“a”);//重点注意:列名称不是表中的列名称,是查询结果集的列名称
String ename = rs.getString(“ename”);
double sal = rs.getDouble(“sal”);//double类型进行数学运算
System.out.println(empno + “,” + ename + “,” + (sal+200));
ResultSet接口类型的 executeQuery方法 专门执行select语句的方法
package com.jdbc;
import java.sql.*;
/**
* 5.处理查询结果集(遍历结果集)(只有select语句才有这步)
* ResultSet executeQuery(select) 专门执行sql语句的方法
* */
public class JDBCTest05 {
public static void main(String[] args) {
//为了释放资源,放在外面写
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
//1.注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//2.获取连接
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/bjpowernode?serverTimezone=GMT%2B8", "root", "jh7851192");
//3.获取数据库操作对象
stmt = conn.createStatement();
//4.执行SQL语句
String sql = "select empno as a,ename,sal from emp1";
//int executeUpdate(insert/delete/update)
//ResultSet executeQuery(select)
rs = stmt.executeQuery(sql);//专门执行select语句的方法
//5.处理查询结果集(只有select语句才有这步)
//rs.next()为boolean返回值
//getString()方法的特点:不管数据库中的数据类型是什么,都以String的形式输出
while (rs.next()) {
//第一方式: 数字1,2,3代表每行的第1,2,3列,循环输出每行。
/**String empno = rs.getString(1);
String ename = rs.getString(2);
String sal = rs.getString(3);
System.out.println(empno + "," + ename + "," + sal);*/
//第二方式:为了健壮语句
/**String empno = rs.getString("a");//重点注意:列名称不是表中的列名称,是查询结果集的列名称
String ename = rs.getString("ename");
String sal = rs.getString("sal");
System.out.println(empno + "," + ename + "," + sal);*/
//第三方式:除了可以String类型取出之外,还可以以特定的类型取出,特定类型可以进行数学运算
int empno = rs.getInt("a");//重点注意:列名称不是表中的列名称,是查询结果集的列名称
String ename = rs.getString("ename");
double sal = rs.getDouble("sal");//double类型进行数学运算
System.out.println(empno + "," + ename + "," + (sal+200));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
//6.释放资源(逆序释放)
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
/*结果:
7369,SMITH,800.0
7499,ALLEN,1600.0
7521,WARD,1250.0
7566,JONES,2975.0
7654,MARTIN,1250.0
7698,BLAKE,2850.0
7782,CLARK,2450.0
7788,SCOTT,3000.0
7844,TURNER,1500.0
7876,ADAMS,1100.0
7900,JAMES,950.0
7902,FORD,3000.0
7934,MILLER,1300.0*/