1. 事务概念:
- 什么叫事务?
- 事务是数据库操作的最基本的单元,逻辑上的一组操作,要么都成功,如果有一个失败所有操作都失败
- 典型场景:银行转帐
- 事务四个特性(ACID):
- 原子性: 如果过程中其中一个部分失败了,那么整个数据库不会发生改变
- 一致性:任何事物都会使数据库处于一致的状态
- 隔离型: 在事务期间,其他操作无法访问修改的数据
- 持久性: 数据库管理系统始终可以恢复已提交事务的结果
2. 事务操作(搭建事务操作环境)
-
创建数据库,创建表
-
创建service,搭建dao接口,完成对象创建和注入:
(1)service注入dao,在dao注入JDBC Template注入DataSource
service类:@Service public class UserService { @Autowired private UserDao userDao; }
Dao类:
@Repository public class UserDaoImpl { @Autowired private JdbcTemplate jdbcTemplate; }
- 在Dao类里创建两个方法:加钱和少钱的方法,在service创建方法(转账的方法)
service:
@Service public class UserService { @Autowired private UserDao userDao; public void transaction() { //Lucy 少 100 //Mary 多 100 userDao.addMoney(); userDao.reduceMoney(); } }
Dao:
@Repository public class UserDaoImpl implements UserDao{ @Autowired private JdbcTemplate jdbcTemplate; @Override public void addMoney() { String sql = "update t_account set money = money + ? where username = ?"; jdbcTemplate.update(sql, 100, "Mary"); } @Override public void reduceMoney() { String sql = "update t_account set money = money - ? where username
- 在Dao类里创建两个方法:加钱和少钱的方法,在service创建方法(转账的方法)