时间:2021-07-01 10:21:17 帮助过:12人阅读
1、PreparedStatement的定义
PreparedStatement是java.sql包下面的一个接口,用来执行SQL语句查询,通过调用connection.preparedStatement(sql)方法可以获得PreparedStatment对象。数据库系统会对sql语句进行预编译处理(如果JDBC驱动支持的话),预处理语句将被预先编译好,这条预编译的sql查询语句能在将来的查询中重用,这样一来,它比Statement对象生成的查询速度更快。如下:Connection conn = DBConnection.getConnection(); //获得连接对象
String findByIDSQL = "select * from " +
"tb_employee where employeeID = ?"; //SQL语句
PreparedStatement pstmt = null; //声明预处理对象
ResultSet rs = null;
Employee employee = null;
try {
pstmt = conn.prepareStatement(findByIDSQL); //获得预处理对象并赋值
pstmt.setInt(1, employeeID); //设置参数
rs = pstmt.executeQuery(); //执行查询
现在你可以使用任何一种loan类型如:”personal loan”,”home loan” 或者”gold loan”来查询,这个例子叫做参数化查询,因为它可以用不同的参数调用它,这里的”?”就是参数的占位符。
总结:这个功能一大优势就是能提高执行速度尤其是多次操作数据库的情况,再一个优势就是预防SQL注入,严格的说,应该是预防绝大多数的SQL注入。
例如学生表里有"学号"和"姓名"两个字段,(学号是是number(9),姓名是varchar2(20).Oracle数据库)
sql="insert into student values(?,?)";
PreparedStatement ps=conn.prepareStatement(sql); //conn是Connection
ps.setInt(1,202060510); //"1"对应第一个"?","2"对应第二个"?"
ps.setString(2,"fannge");
ps.executeUpdate();
关于JDBC预处理功能PreparedStatement
标签:ase 查询语句 学生 statement 重要 val 字符串 知识库 情况