您的位置:首页 > 其它

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: