在java JDBC的实际应用中,经常出现PraparedStatement的身影——预编译的 SQL语句的对象。
SQL语句被预编译并存储在 PreparedStatement对象中。然后可以使用此对象多次高效地执行该语句。
在数据库操作中,PraparedStatement体现出灵活高效率的特点。
PreparedStatement pstmt=conn.prepareStatement("select ROWNUM rn,user_id,user_name,password,contact_tel,email,create_date from(select ROWNUM rn,user_id,user_name,password,contact_tel,email,create_date from(select user_id,user_name,password,contact_tel,email,create_date from T_USER WHERE USER_ID <>'root' ORDER BY user_id) WHERE ROWNUM <= '?') WHERE rn> '?'"; "); pstmt.setInt(1, pageNo * pageSize); pstmt.setInt(2,( pageNo - 1) * pageSize) ; rs = pstmt.executeQuery();
PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES SET SALARY = ? WHERE ID = ?"); pstmt.setBigDecimal(1, 153833.00) pstmt.setInt(2, 110592)
通过对不同类型的参数进行赋值,使得同一update语句通过Set**方法传入不同参数,调用pstmt对象执行更新,可灵活配置多个不同类型参数执行SQL语句
创建一个PreparedStatement对象将参数化的 SQL语句发送到数据库。(带有 IN参数或不带有 IN 参数的 SQL 语句都可以被预编译并存储在PreparedStatement对象中。然后可以有效地使用此对象来多次执行该语句。)
PreparedStatement preparedStatement=con. prepareStatement("UPDATE EMPLOYEES SET CarNo = ? WHERE ID = ?");
2、有IN参数的sql语句,设置参数,将指定参数设置为给定的具体值
preparedStatement. setInt(1,CarNo); preparedStatement. setInt(2, ID);
注: parameterIndex -第一个参数是 1,第二个参数是 2,依此类推
PreparedStatement对象中执行 SQL语句,该语句可以是任何种类的 SQL 语句。一些预处理过的语句返回多个结果,execute方法处理这些复杂的语句,executeQuery和 executeUpdate处理形式更简单的语句。