JDBC
jar包支持
1.创建数据库
2.导入数据库依赖
<!-- mysql的驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.19</version>
</dependency>
</dependencies>
3.IDEA连接数据库
JDBC固定步骤:
public static void main(String[] args) throws ClassNotFoundException, SQLException {
String url = "jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=utf-8&useSSL=true";
String username = "root";
String password = "root";
//1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
//2.连接数据库 代表数据库
Connection connection = DriverManager.getConnection(url, username, password);
//3.向数据库发送SQL的对象Statement,PreparedStatement 安全的 预编译 :CRUD
Statement statement = connection.createStatement();
//4.编写Sql
//5.执行Sql
增删改
//受影响的行数
statement.executeUpdate(sql);
查
statement.executeQuery(sql);
//6.关闭连接,释放资源(一定要做)
statement.close();
connection.close();
}
预编译Sql
public static void main(String[] args) throws ClassNotFoundException, SQLException {
String url = "jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=utf-8&useSSL=true";
String username = "root";
String password = "root";
//1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
//2.连接数据库 代表数据库
Connection connection = DriverManager.getConnection(url, username, password);
//通知数据库开启事务,false为开启
connection.SetAutoCommit(false);
//3.编写Sql
String sql = " insert into user(id,name,password,email,birthday) values(?,?,?,?,?) ";
//4. 预编译 :CRUD
PreparedStatement preparedStatement = connection.perpareStatement(sql);
preparedStatement.setInt(1,1);//给第一个展位符?赋值为1;
//5.执行Sql
增删改
//受影响的行数
statement.executeUpdate(sql);
查
statement.executeQuery(sql);
//6.关闭连接,释放资源(一定要做)
statement.close();
connection.close();
}
事务
将数据换成一组一组的
要么都成功,要么都失败
ACID:原子性(atomicity,或称不可分割性)、一致性(consistency)、隔离性(isolation,又称独立性)、持久性(durability)
ACID原则:保证数据的安全
1.开启事务 start transaction
2.事务提交 commit()
3.事务回滚 rollback()
4.关闭事务
转账
start transaction;
update account set money = money - 100 where name = ‘A’;
update account set money = money + 100 where name = ‘B’;
commit;
start transaction;
update account set money = money - 100 where name = ‘A’;
update account set money = money + 100 where name = ‘B’;
rollback;
commit;