JDBC各个类详解ResultSet遍历结果集和JDBC练习_select语句
JDBC各个类详解ResultSet遍历结果集:
1. Resultset :结果集对象,封装查询结果
boolean next():游标向下移动一行,判断当前行是否是最后一行未尾(是否有数据),如果是,则返回false,如果不是则返回true
getxx×(参数):获取数据
xxx:代表数据类型如: int getInt() , string getstring()
参数∶
1. int :代表列的编号,从1开始如: getstring(1)
2. string :代表列名称。如:getDouble("balance")
注意:
使用步骤:
1.游标向下移动一行
2.判断是否有数据
3.获取数据
//循环判断游标是否是最后一行末尾。
while(rs.next()){
//获取数据
//6.2获取数据
int id = rs.getInt(1);
string name = rs.getstring( "name" );
double balance = rs.getDouble( 3);
system.out.println(id + "---" + name + "---" + balance);
}
代码实现:
public static void main(String[] args) { // 设sta为空 Statement sta = null; // 设conn为空 Connection conn = null; // 设res为空 ResultSet res = null; try { // 1.注册驱动成功 Class.forName("com.mysql.jdbc.Driver"); // 2.数据库连接 conn = DriverManager.getConnection("jdbc:mysql:///mybatis", "root", "root"); // 3.指定sql语句 String sql = "select * from account"; // 4.获取sql对象语句 sta = conn.createStatement(); // 5.执行sql res = sta.executeQuery(sql); // 6.处理结果 // 循环判断游标是否是最后一行末尾 while (res.next() ) { // 获取数据 // 6.2获取数据 int id = res.getInt(1); String name = res.getString("name"); double bale = res.getDouble(3); System.out.println(id + "---" + name + "---" + bale); } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException es) { es.printStackTrace(); }finally { // 7.释放资源 // 避免空指针异常 if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } // 7.释放资源 // 避免空指针异常 if (sta != null) { try { sta.close(); } catch (SQLException es) { es.printStackTrace(); } } // 7.释放资源 // 避免空指针异常 if (res != null) { try { res.close(); } catch (SQLException e) { e.printStackTrace(); } } }
输出结果:
JDBC练习_select语句:
练习∶
定义一个方法,查询emp表的数据将其封装为对象,然后装载集合,返回。
1.定义Emp类
2.定义方法public List<Emp> findAll(){}
3.实现方法select * from emp;
数据库表:
代码实现:
public class Emp { private int id; private String name; private String gender; private double salary; private long join_date; private int dept_id; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public double getSalary() { return salary; } public void setSalary(double salary) { this.salary = salary; } public long getJoin_date() { return join_date; } public void setJoin_date(long join_date) { this.join_date = join_date; } public int getDept_id() { return dept_id; } public void setDept_id(int dept_id) { this.dept_id = dept_id; } @Override public String toString() { return "Emp{" + "id=" + id + ", name='" + name + '\'' + ", gender='" + gender + '\'' + ", salary=" + salary + ", join_date=" + join_date + ", dept_id=" + dept_id + '}'; } }
public static void main(String[] args) { List<Emp> list = new JDBCDemo8().findAll(); System.out.println(list); } public List<Emp> findAll() { List<Emp> list = null; ResultSet res = null; Statement sta = null; Connection conn = null; try { // 1.注册驱动成功 Class.forName("com.mysql.jdbc.Driver"); // 2.数据库连接 conn = DriverManager.getConnection("jdbc:mysql:///mybatis", "root", "root"); // 3.指定sql语句 String sql = "select * from emp"; // 4.获取sql对象语句 sta = conn.createStatement(); // 5.执行sql res = sta.executeQuery(sql); // 6.遍历结果集,封装对象,装载集合 Emp emp = null; list = new ArrayList<>(); while (res.next()) { // 获取数据 int id = res.getInt("id"); String name = res.getString("name"); String gender = res.getString("gender"); double salary = res.getDouble("salary"); long join_date = res.getLong("join_date"); int dept_id = res.getInt("dept_id"); // 创建emp对象 emp = new Emp(); emp.setId(id); emp.setName(name); emp.setGender(gender); emp.setSalary(salary); emp.setJoin_date(join_date); emp.setDept_id(dept_id); //装载集合 list.add(emp); } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException es) { es.printStackTrace(); } finally { // 7.释放资源 // 避免空指针异常 if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } // 7.释放资源 // 避免空指针异常 if (sta != null) { try { sta.close(); } catch (SQLException e) { e.printStackTrace(); } } // 7.释放资源 // 避免空指针异常 if (res != null) { try { res.close(); } catch (SQLException e) { e.printStackTrace(); } } return list; }
输出结果:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix