commandpacket.java
来自「mysql集群」· Java 代码 · 共 129 行
JAVA
129 行
/*
* This program is free software; you can redistribute it and/or modify it under the terms of
* the GNU General Public License as published by the Free Software Foundation; either version 3 of the License,
* or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details.
* You should have received a copy of the GNU General Public License along with this program;
* if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
package com.meidusa.amoeba.mysql.net.packet;
import java.io.UnsupportedEncodingException;
import com.meidusa.amoeba.net.packet.AbstractPacketBuffer;
/**
*
* From client to server whenever the client wants the server to do something.
* <pre>
* Bytes Name
* ----- ----
* 1 command
* n arg
*
* command: The most common value is 03 COM_QUERY, because
* INSERT UPDATE DELETE SELECT etc. have this code.
* The possible values at time of writing (taken
* from /include/mysql_com.h for enum_server_command) are:
*
* # Name Associated client function
* - ---- --------------------------
*
* 0x00 COM_SLEEP (none, this is an internal thread state)
* 0x01 COM_QUIT mysql_close
* 0x02 COM_INIT_DB mysql_select_db
* 0x03 COM_QUERY mysql_real_query
* 0x04 COM_FIELD_LIST mysql_list_fields
* 0x05 COM_CREATE_DB mysql_create_db (deprecated)
* 0x06 COM_DROP_DB mysql_drop_db (deprecated)
* 0x07 COM_REFRESH mysql_refresh
* 0x08 COM_SHUTDOWN mysql_shutdown
* 0x09 COM_STATISTICS mysql_stat
* 0x0a COM_PROCESS_INFO mysql_list_processes
* 0x0b COM_CONNECT (none, this is an internal thread state)
* 0x0c COM_PROCESS_KILL mysql_kill
* 0x0d COM_DEBUG mysql_dump_debug_info
* 0x0e COM_PING mysql_ping
* 0x0f COM_TIME (none, this is an internal thread state)
* 0x10 COM_DELAYED_INSERT (none, this is an internal thread state)
* 0x11 COM_CHANGE_USER mysql_change_user
* 0x12 COM_BINLOG_DUMP (used by slave server / mysqlbinlog)
* 0x13 COM_TABLE_DUMP (used by slave server to get master table)
* 0x14 COM_CONNECT_OUT (used by slave to log connection to master)
* 0x15 COM_REGISTER_SLAVE (used by slave to register to master)
* 0x16 COM_STMT_PREPARE mysql_stmt_prepare
* 0x17 COM_STMT_EXECUTE mysql_stmt_execute
* 0x18 COM_STMT_SEND_LONG_DATA mysql_stmt_send_long_data
* 0x19 COM_STMT_CLOSE mysql_stmt_close
* 0x1a COM_STMT_RESET mysql_stmt_reset
* 0x1b COM_SET_OPTION mysql_set_server_option
* 0x1c COM_STMT_FETCH mysql_stmt_fetch
*
* arg: The text of the command is just the way the user typed it, there is no processing
* by the client (except removal of the final ';').
* This field is not a null-terminated string; however,
* the size can be calculated from the packet size,
* and the MySQL client appends '\0' when receiving.
* </pre>
*
* @author <a href=mailto:piratebase@sina.com>Struct chen</a>
*
*/
public abstract class CommandPacket extends AbstractPacket {
public static final byte COM_SLEEP = 0x00;// (none, this is an internal thread state)
public static final byte COM_QUIT = 0x01;// mysql_close
public static final byte COM_INIT_DB = 0x02;// mysql_select_db
public static final byte COM_QUERY = 0x03;// mysql_real_query
public static final byte COM_FIELD_LIST = 0x04;// mysql_list_fields
public static final byte COM_CREATE_DB = 0x05;// mysql_create_db (deprecated)
public static final byte COM_DROP_DB = 0x06;// mysql_drop_db (deprecated)
public static final byte COM_REFRESH = 0x07;// mysql_refresh
public static final byte COM_SHUTDOWN = 0x08;// mysql_shutdown
public static final byte COM_STATISTICS = 0x09; // mysql_stat
public static final byte COM_PROCESS_INFO = 0x0a;// mysql_list_processes
public static final byte COM_CONNECT = 0x0b; // (none, this is an internal thread state)
public static final byte COM_PROCESS_KILL = 0x0c;// mysql_kill
public static final byte COM_DEBUG = 0x0d ; // mysql_dump_debug_info
public static final byte COM_PING = 0x0e; // mysql_ping
public static final byte COM_TIME = 0x0f; // (none, this is an internal thread state)
public static final byte COM_DELAYED_INSERT = 0x10;// (none, this is an internal thread state)
public static final byte COM_CHANGE_USER = 0x11 ; // mysql_change_user
public static final byte COM_BINLOG_DUMP = 0x12 ; // (used by slave server / mysqlbinlog)
public static final byte COM_TABLE_DUMP = 0x13 ; // (used by slave server to get master table)
public static final byte COM_CONNECT_OUT = 0x14 ; // (used by slave to log connection to master)
public static final byte COM_REGISTER_SLAVE = 0x15 ;// (used by slave to register to master)
public static final byte COM_STMT_PREPARE = 0x16; // mysql_stmt_prepare
public static final byte COM_STMT_EXECUTE = 0x17; // mysql_stmt_execute
public static final byte COM_STMT_SEND_LONG_DATA = 0x18;// mysql_stmt_send_long_data
public static final byte COM_STMT_CLOSE = 0x19; // mysql_stmt_close
public static final byte COM_STMT_RESET = 0x1a; // mysql_stmt_reset
public static final byte COM_SET_OPTION = 0x1b; // mysql_set_server_option
public static final byte COM_STMT_FETCH = 0x1c; // mysql_stmt_fetch
public static final byte COM_EOF = (byte)0xfe; //
public byte command;
@Override
public void init(AbstractPacketBuffer buffer) {
super.init(buffer);
command = buffer.readByte();
}
@Override
public void write2Buffer(AbstractPacketBuffer buffer) throws UnsupportedEncodingException {
super.write2Buffer(buffer);
buffer.writeByte(command);
}
@Override
protected int calculatePacketSize(){
int packLength = super.calculatePacketSize();
packLength += 1;
return packLength;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?