mysql-conneter-java…… 连接驱动
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.22</version> </dependency> package com.liu.servlet; import java.sql.*; public class TestJdbc { public static void main(String[] args) throws ClassNotFoundException, SQLException { String url = "jdbc:mysql://localhost:3306/eesy?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8"; String username = "root"; String password = "root"; Class.forName("com.mysql.jdbc.Driver"); Connection connection = DriverManager.getConnection(url, username, password); Statement statement = connection.createStatement(); String sql1 = "delete from user where id = 1"; statement.executeUpdate(sql1);//增删改 String sql = "select * from user"; ResultSet resultSet = statement.executeQuery(sql);//查询 String sql2 = "insert into (id,name,birthday)values (?,?,?)"; PreparedStatement preparedStatement = connection.prepareStatement(sql2);//预编译 preparedStatement.setInt(1, 2); preparedStatement.setString(2, "aaa"); preparedStatement.setDate(3, new Date(new java.util.Date().getTime())); preparedStatement.executeUpdate(); while (resultSet.next()) { System.out.println("id=" + resultSet.getObject("id")); System.out.println("username=" + resultSet.getObject("username")); System.out.println("birthday=" + resultSet.getObject("birthday")); System.out.println("sex=" + resultSet.getObject("sex")); System.out.println("address=" + resultSet.getObject("address")); } resultSet.close(); statement.close(); connection.close(); } } 事务要么都成功,要么都失败
ACID原则:保证数据的安全
事务特性
原子性 (atomicity):强调事务的不可分割.
一致性 (consistency):事务的执行的前后数据的完整性保持一致.
隔离性 (isolation):一个事务执行的过程中,不应该受到其他事务的干扰
持久性(durability) :事务一旦结束,数据就持久到数据库
事务运行模式
自动提交事务:默认事务管理模式。如果一个语句成功地完成,则提交该语句;如果遇到错误,则回滚该语句。
显式事务:以BEGIN TRANSACTION显式开始,以COMMIT或ROLLBACK显式结束。
隐性事务:当连接以此模式进行操作时,sql将在提交或回滚当前事务后自动启动新事务。无须描述事务的开始,只需提交或回滚每个事务。它生成连续的事务链。