• JDBC查询优化,统计条数


    JDBC查询优化分析:

    现有以下查询语句:

    String sql1 = "select * from userinfo";// 创建语句
    String sql2 = "select count(*) from userinfo";// 创建语句
    String sql3 = "select count(0) from userinfo";// 创建语句
    String sql4 = "select username  from userinfo";// 创建语句

    经过试验得出以下结论:

    select 子句为*时耗时最长,相当于查询所有字段,字段越少,耗时越短,一个字段耗时最短;

    select子句为count(*)与count(0)耗时差不多,但是比查一个字段耗时还要少一些,count(字段名)耗时更长

    JDBC中的ResultSet API没有直接获取记录条数的方法,现介绍几个: 

    方法一:利用ResultSet的last和getRow方法来获得ResultSet的总行数(在查询数据的同时统计记录条数时)

     String sql = "select * from userinfo";// 创建语句

    Statement statement = conn.createStatement();

    ResultSet rs = statement.executeQuery(sql);// 执行SQL语句,并返回一个ResultSet对象rs

    rs.last(); //移到最后一行
    int rowCount = rs.getRow(); //得到当前行号,也就是记录数
    rs.beforeFirst(); //如果还要用结果集,就把指针再移到初始化的位置

    system.out.println(rowCount );

    方法二:利用sql语句中的count函数获得ResultSet的总行数(仅仅统计记录条数时

    String sql= "select count(0) from userinfo";// 创建语句

    Statement statement = conn.createStatement();
    ResultSet rs = statement.executeQuery(sql);

    int rowCount = 0;
    if(rs.next())
    {
    rowCount=rs.getInt(1);
    }

    system.out.println(rowCount );

  • 相关阅读:
    JAVA GUI设
    3.4 jmu-java-随机数-使用蒙特卡罗法计算圆周率的值 (10 分)
    问题:关于2.3 jmu-Java-02基本语法-03-身份证排序 (9 分)
    关于3.1 jmu-Java-03面向对象基础-01-构造函数与toString (3 分)
    linux vim文件编辑的常用命令
    linux的常用命令
    linux文件存储方式
    第一个java
    hdu 2795
    hdu 1394
  • 原文地址:https://www.cnblogs.com/XiaoyangBoke/p/3587670.html
Copyright © 2020-2023  润新知