PreparedStatement的使用:
1.能用PreparedStatement的地方不用Statement。
2.可以避免SQL注入的问题。
3.Statement会使数据库频繁编译SQL,可能造成数据库缓冲区溢出。PreparedStatement 可对SQL进行预编译,从而提高数据库的执行效率。
4.并且PreperedStatement对于sql中的参数,允许使用占位符的形式进行替换,简化sql语句的编写。
public void save(User user) {
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
try{
conn = JdbcUtil.getConnection();
stmt = conn.prepareStatement("insert into user (username,password,email,birthday) values (?,?,?,?)");
stmt.setString(1, user.getUsername());
stmt.setString(2, user.getPassword());
stmt.setString(3, user.getEmail());
stmt.setDate(4, new java.sql.Date(user.getBirthday().getTime()));
stmt.executeUpdate();
}catch(Exception e){
throw new RuntimeException(e);
}finally{
JdbcUtil.release(rs, stmt, conn);
}
}