JDBC(4)-Result结果集

1、Result结果集的引入

  当我们查询数据库时,返回的是一个二维的结果集,我们这时候需要使用ResultSet来遍历结果集,获取每一行的数据。

2、使用Result遍历查询结果

  boolean next():将光标从当前位置向前移一行。

  String getString(int columnIndex):以java编程语言中String的形式获取此ResultSet对象的当前行中指定列的值。

  String getString(int columnLabel):以java编程语言中String的形式获取此ResultSet对象的当前行中指定列的值。

示例:

public class JDBCDemo8 {

    private static MysqlUtil dbUtil = new MysqlUtil();
    /**
     * 遍历查询结果
     * @throws Exception
     */
    private static void listEmp() throws Exception{
        Connection conn = dbUtil.getConnection();
        String sql ="select * from emp2";
        PreparedStatement pstmt = conn.prepareStatement(sql);
        ResultSet rs = pstmt.executeQuery();//返回一个resultSet结果集
        while(rs.next()){
            //String getString(int columnIndex)
            int id = rs.getInt(1);//获取第一个列的值 id
            String name = rs.getString(2);
            //String getString(int columnLabel) 这个好
            Double salary = rs.getDouble("salary");
            int age = rs.getInt("age");
            System.out.println("雇员id:"+id+",姓名:"+name+",薪水:"+salary+",年纪:"+age);
            System.out.println("=================");
        }
    }

    private static List<Emp> listEmp2() throws Exception{
        List<Emp> empList = new ArrayList<Emp>();
        Connection conn = dbUtil.getConnection();
        String sql ="select * from emp2";
        PreparedStatement pstmt = conn.prepareStatement(sql);
        ResultSet rs = pstmt.executeQuery();
        while(rs.next()){
            int id = rs.getInt(1);
            String name = rs.getString(2);
            Double salary = rs.getDouble("salary");
            int age = rs.getInt("age");
            Emp emp = new Emp(id,name,salary,age);
            empList.add(emp);
        }
        return empList;
    }

    public static void main(String[] args) throws Exception{
        listEmp();
        List<Emp> empList = listEmp2();
        for(Emp emp:empList){
            System.out.println(emp);
        }
    }

}

  

时间: 2024-08-05 07:53:45

JDBC(4)-Result结果集的相关文章

Struts2框架(5)---result结果集

result结果集 上一篇文章主要讲Struts2框架(4)---Action类访问servlet这篇主要讲result结果集 在Struts.xml中的result元素指的是:指定动作类的动作方法执行完后的结果视图. (1)局部结果和全局结果 他有两个属性: name:字符串,与动作方法返回的值一致.默认是success type:指定处理结果的结果类型的别名.默认值是dispatcher 首先处理结果分为两种,一种是局部结果一种是全局结果. 局部结果: <action name="lo

JDBC连接数据库返回结果集的Key值

JDBC连接数据库查询数据时时返回ResultSet结果集.ResultSet中存放键值对.我们可以首先取得Key值,然后通过key值获取我们想要的value.那么我们如何获取Key值呢?看下面代码: try { List<Map<String, String>> list = new ArrayList<Map<String, String>>(); rs = getStmt().executeQuery(sql); // 得到结果集ResultSet的结

JDBC处理大结果集

一.背景说明 之前在处理一个优化task时接触到了Jdbc对于大结果集的处理相关内容,记录下.问题开始于前置机抽数程序在抽取大数据量数据时出现卡死的情况.数据源方面客户使用的是Oracle数据库,使用Jdbc直接连接数据库.根据字段数量及类型不同,大概在单个接口数据量达到10万~15万左右就会出现卡死. 二.原因探寻 猜测一: 一开始以为是因为写入的csv文件对大小及记录数有限制,因为每次大概都是写到70多M的时候就会卡死,而且比如xls文件的根据office版本不同确实是有限制的.但经过网上搜

result结果集

结果集(ResultSet)是数据中查询结果返回的一种对象,可以说结果集是一个存储查询结果的对象,但是结果集并不仅仅具有存储的功能,他同时还具有操纵数据的功能,可能完成对数据的更新等. 结果集读取数据的方法主要是getXXX(),他的参数可以使整型表示第几列(是从1开始的),还可以是列名.返回的是对应的XXX类型的值. 如果对应那列时空值,XXX是对象的话返回XXX型的空值,如果XXX是数字类型,如Float等则返回0,boolean返回false.使用 getString()可以返回所有的列的

正确使用MySQL JDBC setFetchSize()方法解决JDBC处理大结果集 java.lang.OutOfMemoryError: Java heap space

昨天在项目中需要对日志的查询结果进行导出功能. 日志导出功能的实现是这样的,输入查询条件,然后对查询结果进行导出.由于日志数据量比较大.多的时候,有上亿条记录. 之前的解决方案都是多次查询,然后使用limit 限制每次查询的条数.然后导出.这样的结果是效率比较低效. 那么能不能一次查询就把所有结果倒出来了?于是我就使用一次查询,不使用limit分页.结果出现 java.lang.OutOfMemoryError: Java heap space问题. 看来是DB服务器端将一次将查询到的结果集全部

JDBC与Hibernate的区别

相同点: ◆两者都是JAVA的数据库操作中间件. ◆两者对于数据库进行直接操作的对象都不是线程安全的,都需要及时关闭. ◆两者都可以对数据库的更新操作进行显式的事务处理. 不同点: ◆使用的SQL语言不同:JDBC使用的是基于关系型数据库的标准SQL语言,Hibernate使用的是HQL(Hibernate query language)语言 ◆操作的对象不同:JDBC操作的是数据,将数据通过SQL语句直接传送到数据库中执行,Hibernate操作的是持久化对象,由底层持久化对象的数据更新到数据

用集算器协助Java读入文本

JAVA提供了最基本的文件处理函数,可以简单无结构的方式读入小文本文件,如果遇到需要结构化.格式多样.要求特殊的文件或内存装不下的大文件,相应的代码就会很复杂,可读性和复用性也很难保障. 使用免费的集算器可以弥补这一不足.集算器封装了丰富的结构化文件读写和计算函数,并提供JDBC接口.JAVA应用程序可以将集算器脚本文件当做数据库存储过程执行,传入参数并用JDBC获得返回结果.详情参考集算器用作Java计算类库的应用结构. 下面说明JAVA读入文本的常见案例,以及集算器对应的解法. 读入指定列 

jdbc与hibernate的优缺点比较

jdbc与hibernate的优缺点比较 一. Hibernate是JDBC的轻量级的对象封装,它是一个独立的对象持久层框架,和App Server,和EJB没有什么必然的联系.Hibernate可以用在任何JDBC可以使用的场合,例如Java应用程序的数据库访问代码,DAO接口 的实现类,甚至可以是BMP里面的访问数据库的代码.从这个意义上来说,Hibernate和EB不是一个范畴的东西,也不存在非此即彼的关系. 二.Hibernate是一个和JDBC密切关联的框架,所以Hibernate的兼

JDBC vs Hibernate(转)

jdbc和Hibernate区别 刚开始学习JAVA时,认为Hibernate是一个很神圣的东西,好像是会了SSH,就能走遍全世界一样.记得曾经在枫叶面试的时候,我们几个同学出还说这个公司怎么这么的落后,还有JDBC,没有一点上进心.可是毕业以后才发现,却发现自已就像是井底之蛙一样.然而也不想做随风柳絮,所以决定好好的总结一下,JDBC与Hibernate的区别. JDBC与Hibernate在性能上相比,JDBC灵活性有优势.而Hibernate在易学性,易用性上有些优势.当用到很多复杂的多表