JDBC之预编译PreparedStatement较Statement的优点

优点1:可读性和维护性更好

Statement的插入语句:

String sql = "INSERT INTO teacher VALUES ('" + username + "','"+password+"','" + name +"')";;

PreparedStatement的插入语句:

String sql = "insert into teacher values(?,?,?)";
PreparedStatement ps = c.prepareStatement(sql);  //c为connection类
ps.setString(1, username);
ps.setFloat(2, password);
ps.setInt(3, name);
ps.execute();

显然,Statement的插入语句中含有大量的单引号和双引号,例如(‘‘”“’‘'""“),看无论是开发还是维护都会造成极大的麻烦。

而PreparedStatement只需要在set方法填入插入的下标和值即可,极容易维护,增强阅读性。

优点二:性能表现

PreparedStatement有预编译机制,性能比Statement更快

优点三:防止SQL注入式攻击

如果是Statement作为登陆验证语句,那么用  ' or '1' = '1 作为账号和密码就能黑进网站。

而PreparedStatement则会组织这个漏洞。

发布了14 篇原创文章 · 获赞 1 · 访问量 253

猜你喜欢

转载自blog.csdn.net/qq_41976749/article/details/104786984