又要好几天没有写博客了,做一件事情最难的就是坚持,很多开源的项目都是因为各种原因而中止的,但是我阅读开源代码绝不能半途而费,一定要坚持一下。
今天又看了一点,使用H2的tcp方式连接数据库,终于调试了一下H2的tcp服务器接收客户端的发送的连接请求的代码,大致过程是这样的:
1.客户端通过JDBC驱动程序发送一个请求,H2的TcpServer接收到客户端的请求后,获取socket对象中的输入和输出流,读取输入流中的数据,解析出url,用户名和密码等等信息。
2.通过数据库引擎创建一个Session,再进一步核对客户端请求的用户名,密码等信息,若不正确则抛出异常,并且将异常信息通过Socket的输出流发送给客户端,客户端则会在调用getConnection的时候抛出异常。
3.若用户名密码等信息正确,则会通过Socket的输出流发送给客户端STATUS_OK的消息给客户端,并且创建一个Connection对象,成功创建Connection。
4.服务器继续等待客户端发送调用SQL语句的数据。
5.客户端发送SQL语句请求。
6.服务器端接收数据,解析数据,检查SQL语句语法是否正确,若不正确则返回错误信息,发送给客户端,若语法正确则执行SQL语句中相应的操作,返回执行之后的结果。
客户端和TCP服务器之间的交互过程就是这样的,还需要进一步了解具体的细节,以便自己能够了解客户端和服务器端之间交互的细节。
相关资源:谷歌安装器(如果Go安装器无法打卡可以使用这个)