什么情况下需要用预编译的SQL语句,preparsStatement(sql);
什么情况下用createStatement()语句?
两种都可以,只不过一般都使用预编译sql,可以提高访问数据库的效率,其次提高代码的可读性和可维护性。
什么都不要想,需要用就直接preparedstatement,1安全有效防止SQL恶意语句 2效率高 3代码整洁可读性 4可维护性
举个例子"SELECT * FROM users WHERE name = 'dsadsfsfwe' OR '1'='1' and pw = 'd1s2qw1as2d' OR '1'='1';" 因为1=1,所以这个SQL语句恒为可执行,所以你用户名密码不写也能登陆网站,这叫SQL恶意攻击,要是黑客良心更不好,直接"SELECT * FROM users WHERE name = 'any_value' and pw = ''; DROP TABLE users"。那恭喜你,你的users表就会被人删了。