import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
* @author zcq 使用预编译statement对象 PreparedStatement
*/
public class JdbcPrepared {
public static boolean testJdbcdemoPrepare() {
String diverName = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/netshop?"
+ "useUnicode=true&characterEncodering=utf-8";
String username = "root";
String password = "123";
Connection conn = null;
PreparedStatement ptmt = null;
String sql_update = "UPDATE Students set stud_name=? WHERE stud_id=?";
String sql_select = "SELECT stud_id, stud_name FROM Students";
ResultSet rs = null;
try {
// 第1步:加载驱动
Class.forName(diverName);
// 第2步: 创建连接
conn = DriverManager.getConnection(url, username, password);
// 第3步: 创建PreparedStatement对象
ptmt = conn.prepareStatement(sql_update)
// 设定事务不默认提交
conn.setAutoCommit(false);
String[] names = new String[] { "张曼玉", "贝克汉姆" };
for (int i = 0; i < names.length; i++) {
ptmt.setString(1, names[i]);
ptmt.setInt(2, 10001 + i);
ptmt.executeUpdate();
}
conn.commit();
// 第4步: 执行SQL语句,并获得结果集
rs = ptmt.executeQuery(sql_select);
// 第5步: 处理结果集
while (rs.next()) {
System.out.println(rs.getString("stud_id")
+ ": "
+ rs.getString ("stud_name"));
}
return true;
} catch (Exception e) {
try {
// 回滚事务
conn.rollback();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
return false;
} finally {
try {
// 第6步: 关闭连接
ptmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}