网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
- 建立一个银行账户的表bank_account,具备以下字段和约束
- 完成该表基本CRUD
- 模拟转账流程
- 模拟异常之后的业务回滚
开发文档:
1. 按需求建表
2. 遵循编码规范,创建项目,包结构
3. 书写该表的CRUD JDBCDao
4. 模拟转账流程 BankDao
4.1转出人扣款
4.2 收款人收款
5. 模拟异常回滚
5.1判断转出人余额是否足够
5.2判断收款人编号是否存在
开战
1.创建Test_Bank数据库,预插入用户数据
2.编写Test_Bank项目
3.实现Dao层:增、删、改、查(主要代码)
//查找用户
public void cha() throws SQLException {
//调用方法实例化一个用户数组,用来存放用户
ArrayList<User> listUser =new ArrayList<User>();
//获取链接
Connection connect = OracleDriverUtil.getConnect();
//准备sql
String sql="select \* from bank\_account";
//装载sql
PreparedStatement ps = connect.prepareStatement(sql);
//执行sql
ResultSet result = ps.executeQuery();
//收参
while (result.next()) {
int id=result.getInt(1);
String num=result.getString("num");
double balance = result.getDouble(3);
//创建用户对象,存放查询数据
User user1 =new User(id,num,balance);
listUser.add(user1);
}
System.out.println(listUser);
}
//增加用户
public boolean zeng(String num,double balance) throws SQLException {
//调用工具
Connection con = OracleDriverUtil.getConnect();
//编写sql
String sql="insert into bank\_account(id,num,balance) values(seq\_bank\_account.nextval,?,?)";
//预装载sql
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1,num);
ps.setDouble(2,balance);
//调用工具执行sql,并返回结果集
ps.executeUpdate();
System.out.println("增加成功");
//返回
return true;
}
//删除用户
public boolean san(String num) throws SQLException {
//调用工具
Connection con = OracleDriverUtil.getConnect();
//编写sql
String sql="delete from bank\_account where num=? ";
//预装载sql
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1,num);
//调用工具执行sql,并返回结果集
ps.executeUpdate();
System.out.println("删除成功");
//返回
return true;
}
//增加转入账户金额
public boolean gaizeng(double balance,String num) throws SQLException {
//调用工具
Connection con = OracleDriverUtil.getConnect();
//编写sql
String sql="update bank\_account set balance=balance+? where num=? ";
//预装载sql
PreparedStatement ps = con.prepareStatement(sql);
ps.setDouble(1, balance);
ps.setString(2, num);
//调用工具执行sql,并返回结果集
ps.executeUpdate();
//返回
System.out.println("转入成功");
return true;
}
//扣除转出用户金额
public boolean gaijian(double balance,String num) throws SQLException {
//调用工具
Connection con = OracleDriverUtil.getConnect();
//编写sql
String sql="update bank\_account set balance=balance-? where num=? ";
//预装载sql
PreparedStatement ps = con.prepareStatement(sql);
ps.setDouble(1, balance);
ps.setString(2, num);
//调用工具执行sql,并返回结果集
ps.executeUpdate();
//返回
System.out.println("转出成功");
return true;
### 最后的话
最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!
### 资料预览
给大家整理的视频资料:
![](https://img-blog.csdnimg.cn/img_convert/867a3c6385341bab3808fe1174ac8919.png)
给大家整理的电子书资料:
![](https://img-blog.csdnimg.cn/img_convert/22d0e8b80e8a7540861f0faa1acd0231.png)
**如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!**
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618542503)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
技术提升。**
**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618542503)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**