DriverManager
-
注册驱动
-
获取数据库连接
如果连接的是本机MySQL服务器,并且MySQL服务默认端口是3306,则url可以简写为: jdbc:mysql:///db1
可以配置useSSL=false 参数,禁用安全连接方式,解决警告提示
jdbc:mysql:///db1?useSSL=false
如果还要加其他参数,可以在后面用&符号连接参数
Connection
1.获取执行SQL的对象
-
Statement createStatement() 普通执行SQL对象
-
PreparedStatement preparedStatement(sql) 预编译SQL的执行SQL对象:防止SQL注入
-
CallableStatement prepareCall(sql) 执行存储过程中的对象
2.事务管理
-
MYSQL事务管理
-
开启事务:BEGIN;/START TRANSACTION;
-
提交事务:COMMIT;
-
回滚事务:ROLLBACK;
MYSQL默认自动提交事务
-
-
JDBC事务管理:Connection接口中定义3个对应的方法
-
开启事务:setAutoCommit(boolean autoCommit): true为自动提交事务;false为手动提交事务,即为开启事务
-
提交事务:commit()
-
回滚事务:rollback()
-
String url="jdbc:mysql:///db1?useSSL=false"; String username="root"; String password="dir99"; Connection conn=DriverManager.getConnection(url,username,password); //定义SQL String sql="update account set money=2000 where id=1"; try{ conn.setAutoCommit(false);//开启事务 //执行SQL int count1=stmt.executeUpdate(sql);//受影响行数 //处理结果 System.out.println(count1); int i=1/0;// 出现异常 //提交事务 conn.commit(); }catch(Exception throwables){ //回滚事务 conn.rollback(); throwables.printStackTrace(); }
所以假设一开始是money的值是1000,之后由于出现异常,事务处理回滚,money的值还是1000