1、获取连接数据库资源
private static ResourceBundle bundle= ResourceBundle.getBundle("connect");//资源包
private static String driver= bundle.getString("driver");//驱动程序
private static String url=bundle.getString("url"); //数据库连接地址
private static String user=bundle.getString("user");//用户名称
private static String password=bundle.getString("password");//用户密码
2、创建连接
public Connection getConn() {
try {
Class.forName(driver);//加载驱动
Connection conn;
conn=DriverManager.getConnection(url, user, password);//创建连接
return conn;
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
3、执行方法
public void Update(String sql, ArrayList<String> parameters) {
Connection connection = getConn();//获取连接
PreparedStatement ps = null;//初始化陈述清单
try {
connection.setAutoCommit(false);// 更改JDBC事务的默认提交方式,默认是true,是自动提交;
ps = connection.prepareStatement(sql);//设置sql语句
for (int i = 0; i < parameters.size(); i++) {
ps.setString(i + 1, parameters.get(i));//设置参数
}
ps.executeUpdate();
connection.commit();//提交JDBC事务,如果没问题,这时才真正的删除了;
connection.setAutoCommit(true);// 恢复JDBC事务的默认提交方式,这是个好习惯;
} catch (SQLException e) {
try {
//回滚JDBC事务,出现异常,为保证数据完整性,此次操作回滚,不删除;
connection.rollback();
} catch (SQLException e1) {
e1.printStackTrace();
}
e.printStackTrace();
}finally{
try { //关闭资源
ps.close();connection.close();} catch (SQLException e) {e.printStackTrace();}}}