Java PrepareStatement
Posted 下路派出所
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java PrepareStatement相关的知识,希望对你有一定的参考价值。
1.PreparedStatement是预编译的,对于批量处理可以大大提高效率. 也叫JDBC存储过程
2.使用 Statement 对象。在对数据库只执行一次性存取的时侯,用 Statement 对象进行处理。PreparedStatement 对象的开销比Statement大,对于一次性操作并不会带来额外的好处。
3.statement每次执行sql语句,相关数据库都要执行sql语句的编译,preparedstatement是预编译得, preparedstatement支持批处理
用法:
conn = DriverManager.getConnection(url, userName, password); //创建PreparedStatement语句 PreparedStatement pstmtDelete = conn.prepareStatement( "DELETE FROM student WHERE stu_id>=?"); PreparedStatement pstmtInsert = conn.prepareStatement( "INSERT INTO student VALUES(?, ?, ?, ?)"); PreparedStatement pstmtSelect = conn.prepareStatement( "SELECT * FROM student WHERE stu_id>=? " + "ORDER BY stu_id"); int Integer.toString(id)); //多次执行同一语句 for (int i=0; i<3; i++, id++) { //使用setXXX方法设置IN参数 pstmtDelete.setString(1, Integer.toString(id)); pstmtInsert.setString(1, Integer.toString(id)); pstmtInsert.setString(2, "name"+id); pstmtInsert.setString(3, "city"+id); pstmtInsert.setDate(4, new Date(78, 2, id)); //执行PreparedStatement语句 pstmtDelete.executeUpdate(); pstmtInsert.executeUpdate(); ResultSet rs = pstmtSelect.executeQuery(); System.out.println(""); System.out.println("第 " + (i+1) + " 次循环后的结果集为:"); //显示返回的结果集 while (rs.next()) { String stuID = rs.getString(1); String String address = rs.getString(3); String birthday= rs.getString(4); System.out.println(stuID + " " + name + " " + address + " " + birthday); } } pstmtDelete.close(); pstmtInsert.close(); pstmtSelect.close(); } catch(SQLException e) { System.out.println("出现SQLException异常"); } finally { //关闭语句和数据库连接 try { if (conn != null) conn.close(); } catch(SQLException e) { System.out.println("关闭数据库连接时出现异常"); } } }
以上是关于Java PrepareStatement的主要内容,如果未能解决你的问题,请参考以下文章
Java基础——Statement与PrepareStatement
如何使用 PrepareStatement 在 Java 中执行 INSERT SELECT INTO
statement和prepareStatement 的区别