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;
    }
复制代码

输出结果:

 

posted @   冰灵IT  阅读(355)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示