您好,欢迎来到666游戏网。
搜索
您的当前位置:首页详细介绍mysql协议的ColumnCount包及解析

详细介绍mysql协议的ColumnCount包及解析

来源:666游戏网



git

https://github.com/sea-boat/mysql-protocol

概况

ColumnCount包属于服务端返回ResultSet时的其中一部分包。

mysql通信报文结构

类型名字描述
int<3>payload长度按照the least significant byte first存储,3个字节的payload和1个字节的序列号组合成报文头
int<1>序列号
stringpayload报文体,长度即为前面指定的payload长度

ColumnCount包

Payload

Protocol::LengthEncodedInteger

更多详情 : http://dev.mysql.com/doc/internals/en/com-query-response.html#packet-ProtocolText::ResultsetRow

ColumnCount包类

/**
 * 
 * <pre><b>column count packet.</b></pre>
 * @author 
 * <pre>seaboat</pre>
 * <pre><b>email: </b>849586227@qq.com</pre>
 * <pre><b>blog: </b>http://www.gxlcms.com/;/pre>
 * @version 1.0
 * @see http://www.gxlcms.com/
 */public class ColumnCountPacket extends MySQLPacket {

 public int columnCount; 
 public void read(byte[] data) {
 MySQLMessage mm = new MySQLMessage(data); 
 this.packetLength = mm.readUB3(); 
 this.packetId = mm.read(); 
 this.columnCount = (int) mm.readLength();
 } 
 @Override
 public void write(ByteBuffer buffer) { 
 int size = calcPacketSize();
 BufferUtil.writeUB3(buffer, size);
 buffer.put(packetId);
 BufferUtil.writeLength(buffer, columnCount);
 } 
 @Override
 public int calcPacketSize() { 
 int size = BufferUtil.getLength(columnCount); 
 return size;
 } @Override
 protected String getPacketInfo() { 
 return "MySQL Column Count Packet";
 }

}

Copyright © 2019- 666spj.com 版权所有

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务