Skip to content

Commit

Permalink
readmme
Browse files Browse the repository at this point in the history
  • Loading branch information
osxcn committed Aug 21, 2017
1 parent 126565f commit 5abb623
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -215,6 +215,14 @@ show variables like '%character%';
注:为了保证中文不出错,无论是数据库的还是JDBC的,建议设置为`utf8`

## 2. 数据库连接池
1. 建立连接
通过`DriverManager``getConnection`方法可以建立一条Java应用程序到后端数据库的物理链接。虽然对我们来说,仅仅是一个方法的调用,但是在JDBC的数据库驱动中完成了大量客户端与服务器端的交互,这里以MySQL为例:
<p align="center">
<img src="/img/JDBC/getConnection交互.png" alt="getConnection交互">
</p>
该方法首先会在客户端(也就是应用程序所在的服务器)发起一个到服务器端的TCP请求,然后服务器端随机生成一个密码种子返回给客户端,客户端利用这个密码种子和自己保存的数据库密码按照约定的加密算法可以计算得到一个加密的密码,然后再将这个加密的密码发送给MySQL服务器端进行验证,MySQL服务器端通过验证以后,返回给客户端确认该连接建立成功。一个`getConnection`方法需要四次客户端与服务器端的网络传输,由于跨机器的网络传输有较大的时间开销,所以`getConnection`也需要花费较多的时间,建立连接时间开销大。

2. 多线程数据库访问


## 3. SQL注入与防范
Expand Down
Binary file added img/JDBC/getConnection交互.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 5abb623

Please sign in to comment.