package ResultSet结果集类的使用;
//遍历结果集
import java.sql.*;
/*ResultSet结果集:
next()方法:游标向下移动一行,初始位置为数据库表中第一行的上一行
getXxxx(参数为“数字索引”或“表中的字段名称”)方法:索引从1开始代表第一列
获取数据类型,返回值为相对应的数据类型,如int getInt(),String getString()等
* */
public class T1 {
public static void main(String[] args) {
f2();
}
public static void f2(){//遍历结果集
Connection connection=null;
Statement statement=null;
ResultSet resultSet=null;
try {
Class.forName("com.mysql.jdbc.Driver");
connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/company5","root","8173sxq...");
String sql="select * from s";
statement=connection.createStatement();
resultSet=statement.executeQuery(sql);
//处理结果
while (resultSet.next()){
//按列的序号获取数据,通过从左往右数,第一列从1开始计数 int String
int rgrade1_1=resultSet.getInt(1);//此时光标停留在第一行,获取数据库表中第一行第1列的数据
String rjob1_1=resultSet.getString(4);//此时光标停留在第一行,获取数据库表中第一行第4列的数据
//按列的对应字段名称获取数据 int String
int rgrade1_2=resultSet.getInt("grade");//此时光标停留在第一行,获取数据库表中字段名称为grade的数据
String rjob1_2=resultSet.getString("job");//此时光标停留在第一行,获取数据库表中字段名称为job的数据
System.out.println("通过数字索引获取的数据:"+rgrade1_1+" "+rjob1_1+" 通过对应的字段名获取的数据:"+rgrade1_2+" "+rjob1_2);
}
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
}
public static void f1(){
// 1、导入驱动包jar包 mysql-connector-java-5.1.x.x.jar文件到项目中
Connection connection=null;
Statement statement=null;
ResultSet resultSet=null;
try {
// 2、注册驱动Class.forName("文件名") Class.forName("驱动类文件名")
Class.forName("com.mysql.jdbc.Driver");
// 3、获取数据库连接对象
// 使用DriverManager.getConnection(“服务器地址和端口号和数据库名”,“数据库用户名”,“登陆密码”)
// 返回一个Connection类的数据库连接对象
connection= DriverManager.getConnection("jdbc:mysql://localhost:3306/company5","root","8173sxq...");
// 4、定义sql语句 使用String对象接收语句内容
String sql="select * from s";
//String sql="update emp set salary=8100 where id=1001";
// 5、创建执行SQL语句的Statement对象
statement=connection.createStatement();
// 6、执行SQL,接收反回结果 调用Statement对象中相对应的executeXXXXX(sql语句的String串)方法执行SQL语句
resultSet=statement.executeQuery(sql);
// 7、处理结果
//光标移动到下一行resltSet.next();
if(resultSet.next()){//读取数据前先判断游标所指的位置是否有暑假,next()返回true表示有数据,返回false表示无数据光标在最后一行了
//按列的序号获取数据,通过从左往右数,第一列从1开始计数 int String
int rgrade1_1=resultSet.getInt(1);//此时光标停留在第一行,获取数据库表中第一行第1列的数据
String rjob1_1=resultSet.getString(4);//此时光标停留在第一行,获取数据库表中第一行第4列的数据
//按列的对应字段名称获取数据 int String
int rgrade1_2=resultSet.getInt("grade");//此时光标停留在第一行,获取数据库表中字段名称为grade的数据
String rjob1_2=resultSet.getString("job");//此时光标停留在第一行,获取数据库表中字段名称为job的数据
System.out.println("通过数字索引获取的数据:"+rgrade1_1+" "+rjob1_1+" 通过对应的字段名获取的数据:"+rgrade1_2+" "+rjob1_2);
}
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}finally {
// 8、释放资源
if(connection!=null){
try {
connection.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if(statement!=null){
try {
statement.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if(resultSet!=null){
try {
resultSet.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
}
}
在JAVA中JDBC应用之遍历结果集ResultSet
最新推荐文章于 2023-12-19 15:14:28 发布