Connection(数据库连接对象)
Connection(数据库连接对象)。作用:
1、获取执行SQL的对象。
- 普通执行SQL对象
Statement statement = connection.createStatement();
- 预编译SQL的执行SQL对象,可以防止SQL注入。
PreparedStatement preparedStatement = connection.prepareStatement(sql);
- 执行存储过程的对象
CallableStatement callableStatement = connection.prepareCall(sql);
2、管理事务。
- Msql事务管理
开启事务:BEGIN;/START TRANSACTION;
提交事务:COMMIT;
回滚事务:ROLLBACK;
- JDBC事务管理;Connection接口中定义了3个对应的方法
开启事务:setAutoCommit(boolean autoCommit);true为自动提交事务;false为手动提交事务,即为开启事务。
回滚事务:rollback();
JDBC事务示例:
public static void main(String[] args) throws Exception {
//1、注册JDBC驱动(JDK1.5后无需Class.forName("")操作,而是通过META-INF\services\java .sql.Driver文本中的地址完成注册)
// Class.forName("com.mysql.cj.jdbc.Driver");
//2、建立sql连接
String url = "jdbc:mysql://localhost:3306/database1";
String username = "root";
String password = "123456";
Connection connection = DriverManager.getConnection(url, username, password);
//3、创建传输器Statement
Statement statement = connection.createStatement();
try {
//开启事务
connection.setAutoCommit(false);
//4、运行sql语句
String sql1 = "UPDATE user SET name = '小明' WHERE identify_id = 1";
int result1 = statement.executeUpdate(sql1);
//手动制造异常,当执行到这里时,sql1语句已执行成功,但是因为该异常产生,触发事务回滚,所以执行后sql1语句执行结果不会生效
int num = 3 / 0;
//4、运行sql语句
String sql2 = "UPDATE user SET name = '小李' WHERE identify_id = 2";
int result2 = statement.executeUpdate(sql2);
//5、处理运行结果
//事务提交
connection.commit();
System.out.println(result1);
System.out.println(result1);
} catch (Exception ex) {
//事务回滚
connection.rollback();
}
//6、释放资源
statement.close();
connection.close();
}

浙公网安备 33010602011771号