java JDBC应用(一)——PraparedStatement对象



java JDBC的实际应用中,经常出现PraparedStatement的身影——预编译的 SQL语句的对象。

用途:

SQL语句被预编译并存储在 PreparedStatement对象中。然后可以使用此对象多次高效地执行该语句。

优势:

在数据库操作中,PraparedStatement体现出灵活高效率的特点。

优势之一:SQL语句预编译,提前Get Ready

      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();


优势之二:使用占位符?传参,同一SQL多次执行

      PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES SET SALARY = ? WHERE ID = ?");

      pstmt.setBigDecimal(1, 153833.00)
      pstmt.setInt(2, 110592)

      通过对不同类型的参数进行赋值,使得同一update语句通过Set**方法传入不同参数,调用pstmt对象执行更新,可灵活配置多个不同类型参数执行SQL语句 

典型应用过程:

1、创建一个PreparedStatement对象

创建一个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,依此类推

3、调用PreparedStatement对象执行sql语句方法【execute()executeQuery()executeUpdate()】[均无参]

         PreparedStatement对象中执行 SQL语句,该语句可以是任何种类的 SQL 语句。一些预处理过的语句返回多个结果,execute方法处理这些复杂的语句,executeQueryexecuteUpdate处理形式更简单的语句。

你可能感兴趣的:(java JDBC应用(一)——PraparedStatement对象)