在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

//图一为sql拼接的方式,不能防止sql注入,比如 "aa or 1=1",会查询出所有的数据
sql1="select id,name from table1  where name="

var1="kate";drop table table2;

sql = sql1+var1
    =  select id,name from table1 where name="kate";drop table table2;

图二位sql 占位符,占位符 ? 实际生成的结果,变量会被加引号处理,不会包含有害语句,故可以保证sql注入问题
select id,namem from mtable1 where name=""kate";drop table table2;"
// sql预处理也可以也可以防止注入问题,
//预处理 只是会缓存你执行sql的一些通用的步骤  这样减少重复计算消耗
//1、预处理可以提高性能,一次编译多次执行
//2、语句与查询条件是分开的,可以保证sql注入问题

//占位符 和预处理方式不同
//图三为预处理的方式