30-jdbc的各个类详解

30-jdbc的各个类详解,第1张

30-jdbc的各个类详解

ResultSet:结果集对象,封装查询结果   查询查询查询

调用:ResultSet resultSet = stmt.executeQuery(sql);

 

其实sql语句中select*from 查询出来的就是结果集   ResultSet就是来封装查询结果的  我们做的就是从ResultSet中拿出来数据  

小概念  有一个游标(像集合的索引) 一开始指向表的第一行的表头位置(此时不能取数据)

游标移动指向第一行  把每一列都给取出来

此时涉及两个方法next();方法   getXxx(参数);方法
            * boolean next(): 游标向下移动一行,判断当前行是否是最后一行末尾(是否有数据),如果是,则返回false,如果不是则返回true
            * getXxx(参数):获取数据 : 一次获取某一行某一列的数据
                  * Xxx:代表数据类型   如:

int getInt();返回int类型 ,      getInt();方法

String getString();此方法返回一个字符串  getString();方法
                  * 参数:
                    1. int:代表列的编号,从1开始   如: getString(1)   好比上表是获取id这一列 这个编号是从1开始 比较特殊
                    2. String:代表列名称。 如: getDouble("balance")  这个是get 列名称balance 得到balance这一列
  

     注意代码里的

//执行sql这一步发生了变化
           rs = stmt.executeQuery(sql);  //这里rs就是已经获取道德数据集 其实我觉着就是呢个表
           //处理数据
            //0.1让游标向下移动一行
            rs.next();
            //0.2获取数据  //这里rs就是已经获取道德数据集 其实我觉着就是呢个表
            int id = rs.getInt(1);
            String name = rs.getString("name");
            double balance = rs.getDouble(3);
            System.out.println(id+"---"+name+"---"+balance);

package cn.itcast.jdbc;

import java.sql.*;


public class JdbcDemo06 {
    public static void main(String[] args) {
        Connection conn =null;
        Statement stmt=null;
        ResultSet rs=null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            String sql = "select*from account";
            conn = DriverManager.getConnection("jdbc:mysql:///db3", "root", "root");
            stmt = conn.createStatement();
      //执行sql这一步发生了变化
           rs = stmt.executeQuery(sql);  //这里rs就是已经获取道德数据集 其实我觉着就是呢个表
           //处理数据
            //0.1让游标向下移动一行
            rs.next();
            //0.2获取数据  //这里rs就是已经获取道德数据集 其实我觉着就是呢个表
            int id = rs.getInt(1);
            String name = rs.getString("name");
            double balance = rs.getDouble(3);
            System.out.println(id+"---"+name+"---"+balance);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally{  //释放资源 最后申请的先释放
            if (rs!=null){
                try {
                    rs.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (conn!=null){
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (stmt!=null){
                try {
                    stmt.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

 上面代码的不能直接把表所有的内容都查了因为这里看不到表里面有几行数据

         * 注意:正确代码使用步骤   正确的打开方式
                * 使用步骤:
                    1. 游标向下移动一行
                    2. 判断是否有数据
                    3. 获取数据

有next();方法:

* boolean next(): 游标向下移动一行,判断当前行是否是最后一行末尾(是否有数据),如果是,则返回false,如果不是则返回true

            * 练习:
                * 定义一个方法,查询emp表的数据将其封装为对象,然后装载集合,返回。
                    1. 定义Emp类
                    2. 定义方法 public List findAll(){}
                    3. 实现方法 select * from emp;

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5575847.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存