栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

30-jdbc的各个类详解

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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;

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/584637.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号