浅谈 JDBC 中 CreateStatement 和 PrepareStatement 的区别与优劣。
假设有一个数据库,里面有一个 user 表,有 username , userpwd 两列。我们要查出这两列的数据。
这是使用 CreateStatement 方法创建了 stmt 对象,再通过他查询的一部分语句片段。
String sql = "select * from users where username= '"+username+"' and userpwd='"+userpwd+"'";
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
使用了 PrepareStatement 方法创建了 pstmt 对象,再通过这个对象查询的一部分语句片段。
String sql = "select * from users where username=? and userpwd=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, username);
pstmt.setString(2, userpwd);
rs = pstmt.executeQuery();
PrepareStatement 可以提高代码的可读性与安全性。