JDBC处理查询结果集
* ResultSet resultSet=null 结果集对象
* executeQuery(select) 执行SQL查询语句需要的使用executeQuery方法
* int executeUpdate(insert / delete / update); ResultSet executeQuery( select );
* boolean resultSet.next() 方法 返回true/false. 执行到resultSet.next()会往下移动一行,如果下一行有数据那么返回true,没有数据返回false
* resultSet.getString(); 方法 获取列数据,括号里可以跟列下标(1 下标从1开始),也可也跟("列名"),使用该方法,无论数据库中的数据是什么类型的,都会自动转换成String类型。
* 如果查询语句中使用了'别名',那么在getString()方法中需要跟修改后的别名。
* getString() 和 getNString() 的区别
- getString()无论底层数据库中的数据类型是什么,都会转换成String类型数据。
- getNString()如果查询了数据类型不为 NCHAR、NVARCHAR、LONGNVARCHAR 的字段,就会报错。
* 还有 getInt、getDouble、getByte、getArray....等等方法,可以获得所相对应的数据库中的数据。
* 代码:
```
import java.sql.*;
public class JDBCTest06 {
public static void main(String[] args) {
//创建连接对象
Connection connection=null;
Statement statement=null;
ResultSet resultSet=null;
try{
//注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//获取连接
connection= DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/employ?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai",
"root","123456");
//获取数据库操作对象
statement=connection.createStatement();
//执行SQL查询语句 ,获取结果集
resultSet = statement.executeQuery("SELECT * FROM DEPT");
//处理查询结果集
/*
while(resultSet.next()){
String deptno=resultSet.getString(1);
String dname=resultSet.getString(2);
String loc=resultSet.getString(3);
System.out.println(deptno +" "+dname+" "+loc);
}
*/
while(resultSet.next()){
//数据库中什么类型的数据,可以用相应类型的方法获取。
int deptno=resultSet.getInt("DEPTNO");
String dname=resultSet.getString("DNAME");
String loc=resultSet.getString("LOC");
System.out.println(deptno +" "+dname+" "+loc);
}
}catch (Exception e){
}finally {
//释放资源
if (resultSet!=null){
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (statement!=null){
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(connection!=null){
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}