springboot在实体类只有一个用户的字段的情况下在页面实现转账记录,转出的用户余额减少,转入的用户余额增加(用mybatis-plus)
时间: 2024-11-13 08:20:27 浏览: 14
SpringBoot + MybatisPlus 实现实体类转成数据库表结构,可直接运行
在Spring Boot项目中,结合MyBatis Plus操作数据库并实现在实体类只有一个用户字段(假设名为User)的情况下展示转账记录,并更新用户的余额,可以按照以下步骤进行:
1. **模型映射**:
创建一个转账记录的实体类(TransferRecord),包含转出用户(Sender)和转入用户(Receiver)字段,以及转账金额(amount)等属性。
```java
public class TransferRecord {
private User sender;
private User receiver;
private Double amount;
// getter and setter methods
}
```
2. **数据库表设计**:
设计一个转账记录表,关联到用户表(通常通过外键引用用户ID)。
3. **服务层处理**:
在业务服务类中,创建转账方法,它接受两个User对象和转账金额,然后通过MyBatis Plus的动态查询或手动执行SQL(如果需要的话,因为一对一关联可能会避免使用MyBatis Plus的Mapper方法)更新用户余额。
```java
@Service
public class TransferService {
@Autowired
private UserMapper userMapper;
public void transfer(User sender, User receiver, Double amount) {
// 更新转出用户余额
userMapper.decreaseBalance(sender.getId(), -amount);
// 更新转入用户余额
userMapper.increaseBalance(receiver.getId(), amount);
// 插入转账记录
TransferRecord record = new TransferRecord();
record.setSender(sender);
record.setReceiver(receiver);
record.setAmount(amount);
transferRecordMapper.insert(record);
}
}
```
4. **页面展示**:
使用Thymeleaf、JSP或其他视图技术,在模板中展示转账记录,并通过Controller传递转账结果数据。
5. **安全性考虑**:
确保转账操作有权限控制,比如验证用户身份,防止恶意操作。
阅读全文