PreparedStatement使用批处理多个更新20.15.2.Use Batch Multiple Updates with PreparedStatement
2012-03-07 15:18
513 查看
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSetMetaData; import java.sql.Statement; import java.sql.ResultSet; public class BatchMultiplePreparedStatement { public static void main(String[] args) throws Exception{ Connection con = getConnection(); con.setAutoCommit(false); Statement st = con.createStatement(); st.executeUpdate("create table survey1(id int , name varchar(30));"); String INSERT_RECORD = "insert into survey1(id,name) values(?,?)"; PreparedStatement psmt = con.prepareStatement(INSERT_RECORD); psmt.setString(1, "1"); psmt.setString(2,"name1"); psmt.addBatch(); psmt.setString(1, "2"); psmt.setString(2, "name2"); psmt.addBatch(); int[] updateCounts = psmt.executeBatch(); checkUpdateCounts(updateCounts); con.commit(); ResultSet rs = st.executeQuery("select * from survey1"); outputResultSet(rs); rs.close(); st.close(); con.close(); } private static void outputResultSet(ResultSet rs) throws Exception{ ResultSetMetaData rsmd = rs.getMetaData(); int numberOfColumns = rsmd.getColumnCount(); for(int i = 1; i < numberOfColumns + 1; i++){ String columnName = rsmd.getColumnName(i); System.out.println(columnName + " "); } System.out.println(); System.out.println("----------------------"); while(rs.next()){ for(int i = 1; i < numberOfColumns +1 ; i++){ System.out.println(rs.getString(i) + " "); } System.out.println(); } } private static void checkUpdateCounts(int[] updateCounts) { for(int i = 0; i < updateCounts.length; i++){ if(updateCounts[i] > 0){ System.out.println("OK; updateCount =" + updateCounts[i]); } else if(updateCounts[i] == Statement.SUCCESS_NO_INFO){ System.out.println("OK; updateCount = Statement.SUCCESS_NO_INFO"); } else if(updateCounts[i] == Statement.EXECUTE_FAILED){ System.out.println("Failure;updateCount = Statement.EXECUTE_FAILED"); } } } public static Connection getConnection() throws Exception{ Connection con = null; Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection("jdbc:mysql://localhost/bookshop","root",""); return con; } }
OK; updateCount =1
OK; updateCount =1
id
name
----------------------
1
name1
2
name2
相关文章推荐
- spring批量更新数据 ---- BatchPreparedStatementSetter
- spring批量更新数据 ---- BatchPreparedStatementSetter
- springmvc封装jdbc的批量更新BatchPreparedStatementSetter问题
- spring批量更新数据 ---- BatchPreparedStatementSetter
- spring批量更新数据 ---- BatchPreparedStatementSetter
- PreparedStatement.addbatch()的使用
- 使用BatchPreparedStatementSetter 完成批量插入数据的操作
- spring 批量更新数据 ---- BatchPreparedStatementSetter
- jdbc-mysql基础 PreparedStatement addBatch 批处理
- PreparedStatement executeBatch()的返回值
- 使用JDBC进行批处理Batch
- 关于PreparedStatement.addBatch()方法 (转)
- 当使用restore .bak文件的时候.显示如信息:Use WITH MOVE to identify a valid location for the file
- Android Studio 使用教程(十六)之 Manifest merger failed with multiple errors, see logs
- jdbc使用 Statement 接口实现更新数据操作
- 使用批处理简化Windows IP设置过程(更新最终版)
- 使用AlertDialog报错 You need to use a Theme.AppCompat theme (or descendant) with this activity.之解决
- Working with Multiple Environments(使用多个环境)
- 【小技术】批处理使用svn命令更新当前目录下项目
- 使用vue-router时,Error: Please install the Router with Vue.use() before creating an instance.的解决办法。