• java中游标


    package YouBiao;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    public class YouBiaoTest {
        /**
        * 一次只从数据库中查询最大maxCount条记录
        * @param sql 传入的sql语句
        * @param startNo 从哪一条记录开始
        * @param maxCount 总共取多少条记录
        */
        public void getData(String sql,int startNo,int maxCount){
        
         try {
             Connection conn = ConnectionUtil.getConnection();
        //  conn.prepareStatement(sql,游标类型,能否更新记录);
        //   游标类型:
    //        ResultSet.TYPE_FORWORD_ONLY:只进游标
    //        ResultSet.TYPE_SCROLL_INSENSITIVE:可滚动。但是不受其他用户对数据库更改的影响。
    //        ResultSet.TYPE_SCROLL_SENSITIVE:可滚动。当其他用户更改数据库时这个记录也会改变。
        //   能否更新记录:
    //        ResultSet.CONCUR_READ_ONLY,只读
    //        ResultSet.CONCUR_UPDATABLE,可更新
          PreparedStatement pstat = conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
          //最大查询到第几条记录
          pstat.setMaxRows(startNo+maxCount-1);
          ResultSet rs = pstat.executeQuery();
          //将游标移动到第一条记录
          rs.first();
        //  游标移动到要输出的第一条记录
          rs.relative(startNo-2);
          while(rs.next())
          System.out.println(rs.getInt(1));
         } catch (Exception e) {
          e.printStackTrace();
         }
        }
        /**
        * 从数据库中查询所有记录,然后通过游标来获取所需maxCount条记录
        * @param sql 传入的sql语句
        * @param startNo 从哪一条记录开始
        * @param maxCount 总共取多少条记录
        */
        public void getDataFromAll(String sql,int startNo,int maxCount){
        
         try {
          Connection conn = ConnectionUtil.getConnection();
          PreparedStatement pstat = conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
          ResultSet rs = pstat.executeQuery();
          rs.first();
          rs.relative(startNo-1);
          int i = startNo-1;
          while(i < startNo + maxCount-1 && !rs.isAfterLast()){
          System.out.println(rs.getInt(1));
          i++;
          rs.next();
          }
         } catch (Exception e) {
          e.printStackTrace();
         }
        }
    }
    package YouBiao;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.Properties;
    
    public class ConnectionUtil {
        private static String driver;
        private static String uri;
        private static String user;
        private static String password;
     
        static {
            Properties props = new Properties();
            try {
                props.load(ConnectionUtil.class.getClassLoader()
                        .getResourceAsStream("properties文件路径"));
                driver = props.getProperty("driver");
                uri = props.getProperty("uri");
                user = props.getProperty("user");
                password = props.getProperty("password");
                Class.forName(driver);
            } catch (Exception e) {
            }
        }
     
        /**
         * 获得Connection对象
         * @return
         * @throws Exception
         */
        public static Connection getConnection() throws Exception {
            Connection con = DriverManager.getConnection(uri, user, password);
            return con;
        }
     
        /**
         * 关闭ResultSet对象
         * @param rs
         */
        public static void closeResultSet(ResultSet rs) {
            if (rs != null)
                try {
                    rs.close();
                } catch (SQLException e) {
                }
        }
     
        /**
         * 关闭Statement对象
         * @param stmt
         */
        public static void closeStatement(Statement stmt) {
            if (stmt != null)
                try {
                    stmt.close();
                } catch (SQLException e) {
                }
        }
     
        /**
         * 关闭Connection对象
         * @param con
         */
        public static void closeConnection(Connection con) {
            if (con != null)
                try {
                    con.close();
                } catch (SQLException e) {
                }
        }
    
    
    }
  • 相关阅读:
    Python实例---抽屉后台框架分析
    Python学习---Django的验证码
    Python学习---DjangoForm的总结大全
    思维导图---思维导图网站
    编码学习---代码OJ网站
    multiple definition of XXX情况分析
    Qt 之 pro 配置详解
    萨尔曼可汗 数学视频
    Android sendevent/getevent 用法
    inux 驱动程序开发中输入子系统总共能产生哪些事件类型(EV_KEY,EV_ABS,EV_REL)
  • 原文地址:https://www.cnblogs.com/xianz666/p/13559103.html
Copyright © 2020-2023  润新知