JDBC驱动中的核心代码位置

原创 2015年11月18日 13:57:10

mysql-connector-java-5.1.36-src/src/com/mysql/jdbc/MysqlIO.java
+getResultSet


    protected ResultSetImpl getResultSet(StatementImpl callingStatement, long columnCount, int maxRows, int resultSetType, int resultSetConcurrency,
            boolean streamResults, String catalog, boolean isBinaryEncoded, Field[] metadataFromCache) throws SQLException {
        Buffer packet; // The packet from the server
        Field[] fields = null;

        // Read in the column information

        if (metadataFromCache == null /* we want the metadata from the server */) {
            fields = new Field[(int) columnCount];

            for (int i = 0; i < columnCount; i++) {
                Buffer fieldPacket = null;

                fieldPacket = readPacket();
                fields[i] = unpackField(fieldPacket, false);
            }
        } else {
            for (int i = 0; i < columnCount; i++) {
                skipPacket();
            }
        }

        packet = reuseAndReadPacket(this.reusablePacket);

        readServerStatusForResultSets(packet);

        //
        // Handle cursor-based fetch first
        //

        if (this.connection.versionMeetsMinimum(5, 0, 2) && this.connection.getUseCursorFetch() && isBinaryEncoded && callingStatement != null
                && callingStatement.getFetchSize() != 0 && callingStatement.getResultSetType() == ResultSet.TYPE_FORWARD_ONLY) {
            ServerPreparedStatement prepStmt = (com.mysql.jdbc.ServerPreparedStatement) callingStatement;

            boolean usingCursor = true;

            //
            // Server versions 5.0.5 or newer will only open a cursor and set this flag if they can, otherwise they punt and go back to mysql_store_results()
            // behavior
            //

            if (this.connection.versionMeetsMinimum(5, 0, 5)) {
                usingCursor = (this.serverStatus & SERVER_STATUS_CURSOR_EXISTS) != 0;
            }

            if (usingCursor) {
                RowData rows = new RowDataCursor(this, prepStmt, fields);
                 .........

版权声明:本文为博主原创文章,未经博主允许不得转载。微信hustos联系博主。

相关文章推荐

openwrt 编译驱动模块(在openwrt源代码外部任意位置编写代码,独立模块化编译.ko)

在openwrt SDK代码包之外,模块化编译驱动程序,生产.ko文件,不需要再openwrt内部建立文件夹编译。

java代码实现JDBC连接MySql以及引用驱动程序包

JDBC连接MySql以及引用驱动程序包

JDBC驱动和测试代码

  • 2008-03-20 16:13
  • 381KB
  • 下载

Android笔记三十二.Android位置服务及核心API

一、位置服务概念 1.位置服务     位置服务(Location-Based Services,LBS),又称定位服务或基于位置的服务,融合了GPS定位、移动通信、导航等多种技术,提供了与个空间...

jdbc驱动代码

  • 2012-05-08 22:20
  • 2.18MB
  • 下载

6410驱动位置详解

  • 2014-06-18 11:29
  • 80KB
  • 下载

融云,发送位置,腾讯地图改为高德地图,SOSOLocationActivity 核心类修改

融云,发送位置,腾讯地图改为高德地图。修改demo的SOSOLocationActivity 核心类: 高德用的是3d地图包+搜索包,2d地图的实时交通覆盖层一直有bug。 代码如下: pack...
  • xrs077
  • xrs077
  • 2016-01-27 10:20
  • 1185

寻找屏幕上的点击位置--Queen核心技术分享

APP发布之后,发布者最关心的事情自然是用户使用APP的情况。换言之,他们希望回答一个问题:我的用户是怎么使用我的APP的?为了回答这个问题,最重要的步骤就是用户数据收集,因为用户不可能来到你的身边去...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)