参数化查询能避免sql注入的原因是采用了预编译方法,先将SQL语句中可被客户端控制的参数集进行编译,生成对应的临时变量集,再使用对应的设置方法,为临时变量集的元素进行赋值,赋值函数为setString(),这样会对传入的参数进行强制类型检查和安全检查,所以就避免了SQL注入的产生。