/*
处理查询结果集
完整的JDBC编程六步:
1、注册驱动
2、获取连接
3、获取数据库操作对象
4、执行SQL语句
5、处理查询结果集
6、释放资源
*/
import java.sql.SQLException;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.DriverManager;
public class Test2
{
public static void main(String[] args){
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try{
//1、注册驱动
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
//2、获取连接
conn = DriverManager.getConnection("jdbc:mysql://localhost:3366/bjpowernode","root","123");
//3、获取数据库操作对象
stmt = conn.createStatement();
//4、执行SQL语句
//查询结果在rs对象当中。
rs = stmt.executeQuery("select empno as a,ename as b,sal as c from emp where sal >= 1000");
//5、处理查询结果集
//目前处理的主要方式是:将结果集中的数据打印输出到控制台
/*
rs对象中存储的是以下数据:
+-------+-------+---------+
| empno | ename | sal |
+-------+-------+---------+
| 7788 | SCOTT | 3000.00 |
| 7839 | KING | 5000.00 |
| 7902 | FORD | 3000.00 |
+-------+-------+---------+
boolean has = rs.next(); 作用:将结果集的光标向前移动一行,指向的当前行有数据的时候返回true
*/
while(rs.next()){
//处理当前光标指向的行
//将当前行在这个大括号中把所有的列取出
//JDBC当中所有的下标都是从1开始的。
//以下方法的作用是:不管数据库表当中存储的数据类型是什么,统一都以字符串的形式取出。
/*
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("empno"); //以查询结果集当中列名称的方式获取
String ename = rs.getString("ename");
String sal = rs.getString("sal");
System.out.println(empno + " , " + ename + " , " + sal);
*/
/*
//注意:列名称不是表格里面的列名称,是你查询结果集当中的列名称。
String empno = rs.getString("a");
String ename = rs.getString("b");
String sal = rs.getString("c");
System.out.println(empno + " , " + ename + " , " + sal);
*/
//可以以指定的类型取出
/*
int empno = rs.getInt(1);
String ename = rs.getString(2);
double sal = rs.getDouble(3);
System.out.println((empno+1) + " , " + ename + " , " + sal);
*/
int empno = rs.getInt("a");
String ename = rs.getString("b");
double sal = rs.getDouble("c");
System.out.println((empno+1) + " , " + ename + " , " + sal);
}
}catch(SQLException 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();
}
}
}
}
}