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 PrepareStatement

Java基础——Statement与PrepareStatement

如何使用 PrepareStatement 在 Java 中执行 INSERT SELECT INTO

statement和prepareStatement 的区别

java用prepareStatement模糊查询问题,用的是sql server,我晕了

Java代码工具箱之超出游标最大数