PreparedStatement和createStatement的区别
- statement由方法createStatement()创建,该对象用于发送简单的SQL语句
//通过Connection的接口创建Statement对象
statement = conn.createStatement();
//编写sql语句
String sql = "select * from student";
//执行查询,将查询的到的结果放到ResultSet里面
rs = statement.executeQuery(sql);
PreparedStatement由方法preparedStatement()创建,该对象用于发送带有一个或者多个输入参数的SQL语句。
- sql语句使用”?”作为数据占位符
- 使用setXxx()方法设置数据
String sql = "insert into student(studentName,sex,phone,address)"+
" value(?,?,?,?)";
PreparedStatement ps = conn.prepareStatement(sql);
//给sql语句注入参数
ps.setString(1,stuName );
ps.setInt(2, sex);
ps.setString(3, stuPhone);
ps.setString(4, stuAddress);
int result = ps.executeUpdate();
if(result>0){
System.out.println("添加成功!");
}else{
System.out.println("添加失败!");
}
- PreparedStatement–预编译
- 效率、性能、开销 更有优势
- 安全性更高
- 代码可读性更好