防止sql注入方法之预编译

1.解决办法:手动开启预编译功能;
2.预编译介绍:
PreparedStatement的预编译功能是指首先将SQL语句编译成可重复使用的预处理语句(PreparedStatement),然后将其保存在数据库服务器端的缓存中以备后续使用。当需要执行该SQL语句时,只需将具体参数传入预处理语句即可快速执行SQL语句,而无需每次都重新解析和编译SQL语句。
防止sql注入方法之预编译_第1张图片
3.开启方法:
在application.yml中的URL语句中加入useServerPrepStmts=true,

url: jdbc:mysql://localhost:3306/app_vue?serverTimezone=GMT%2B8&useSSl=false&useServerPrepStmts=true

4.验证方法:通过日志文件来看一下预编译的效果(如果之前开启过日志可直接跳至(3))
(1)my.ini增加如下代码:

log-output=FILE
general-log=1
general_log_file="E:\soft\mysql-5.7.24-winx64\mysql-5.7.24-winx64\mysql.log"
slow-query-log=1
slow_query_log_file="E:\soft\mysql-5.7.24-winx64\mysql-5.7.24-winx64\mysql_slow.log"
long_query_time=2

(2)“服务”中重启mysql服务,原来文件夹下多出了两个新文件mysql.log 和mysql_slow.log
防止sql注入方法之预编译_第2张图片
(3)打开mysql.log,发现其中Prepare就是预编译SQL语句,Execute就是执行SQL语句。预编译配置成功。
防止sql注入方法之预编译_第3张图片

你可能感兴趣的:(sql,数据库,mysql)