在这个workshop中,我们会引导大家用netty去实现MySQL的COM_QUERY协议; 其实在JDBC中所有statement语句在Server端都会被映射成COM_QUERY进行处理。
- 了解MySQL的COM_QUERY协议,以及MySQL Packet的相关知识
- 本地安装MySQL5.7.xx (注意MySQL客户端不支持8.0)
- 安装Wireshark,方便抓取MySQL Packet进行分析
- mvn clean install -DskipTests
- 启动Bootstrap.main
- mysql -h 127.0.0.1 -P3307 -uroot -proot
- mysql> select * from t_order;
- 根据COM_QUERY协议,获取客户端发起的SQL,并且打印在控制台
- 构建COM_QUERY response所需要的Packet,并且正确返回到客户端
- 使用ANTLR解析SQL,从内存或者文件中提取所需的结果集,正确返回到客户端(提升项)
├── Bootstrap.java
├── fixture
└── todo ## 在这里实现功能
├── FrontendChannelInboundHandler.java
└── packet
├── MySQLColumnDefinition41Packet.java
├── MySQLEofPacket.java
├── MySQLFieldCountPacket.java
└── MySQLTextResultSetRowPacket.java