实验:利用数据库重构WoniuATM
作者:reader1   类别:PHP开发    日期:2018-10-16 17:30:25    阅读:621 次   消耗积分:0 分


实验简介



通过前面一个利用文本文件重构WoniuATM的实验可以看到,我们完全可以利用一个文本文件来永久保存用户信息,但是实现过程相对复杂,而且程序的健壮性并不高。所以,本实验将带大家利用MySQL数据库来保存用户信息,并结合JDBC操作完成用户注册,登录,账户管理等功能,借助数据库管理系统的完善功能及SQL语句在查询和更新上的便利,在简化代码功能的基础上,提升程序的健壮性。

 



实验目的



1.掌握数据库持久化及JDBC的具体应用,解决实际问题。

2.加深对数据库操作的理解,并在后续学习中继续应用。

3.通过重构同一个接口,利用不同的代码实现相同的功能,进而对接口有深入理解。

 



实验流程



1.先来看看数据表结构及数据。


图片1.png


上述表使用场景较多,也包括后续的一些实验。而在本实验中,我们只需要首先关注“用户名”,“密码”和“余额”三列即可,其它内容可暂时忽略。另外一方面,类“UserManager”和“AccountManager”中的方法接口名及参数均保持与上一个实验中的完全一致,只是实现的代码不一样而已。

 


2.实现基于数据库的公共类。


该类的功能几乎与文本文件操作的公共类一致,但是由于有JDBC的存在,我们操作数据库的代码功能更加简洁:


package com.woniuxy.atm.four;
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
 
public class DatabaseHandler {
// 声明数据库驱动程序类
private static String driverClassName = "com.mysql.jdbc.Driver";
// 定义数据库连接字符串
private static String url = "jdbc:mysql://localhost:3306/learn?"+
"user=root&password=&useUnicode=true&characterEncoding=UTF8";
// 建议与数据库之间的连接
public Connection getConnection() {
Connection conn = null;
try {
Class.forName(driverClassName).newInstance();
conn = DriverManager.getConnection(url);
}
catch (Exception e) {
e.printStackTrace();
}
return conn;
}
// 通过用户名获取到用户信息,并保存到一个字符串数组中
public String[] getUserInfo(String username) {
String sql = "select username,balance from user where username=?";
String userInfo[] = new String[2];
try {
PreparedStatement ps = this.getConnection().prepareStatement(sql);
ps.setString(1, username);
ResultSet rs = ps.executeQuery();
rs.next();
userInfo[0] = rs.getString("username");
userInfo[1] = String.valueOf(rs.getDouble("balance"));
}
catch (Exception e) {
e.printStackTrace();
}
return userInfo;
}
// 直接操作数据库更新某个用户名的余额
public void updateBalance(String username, double money) {
String sql = "update user set balance=balance+? where username=?";
try {
PreparedStatement ps = this.getConnection().prepareStatement(sql);
ps.setDouble(1, money);
ps.setString(2, username);
ps.executeUpdate();
}
catch (Exception e) {
e.printStackTrace();
}
}
}


 

3.检查用户名是否存在。


版权所有,转载本站文章请注明出处:蜗牛笔记, http://www.woniunote.com/article/68
上一篇:实验:利用文本文件重构WoniuATM
下一篇:实验:利用CSS3实现立方体及移动组装效果
${comment['nickname']}   ${comment['createtime']}
  
       
${comment.content}
${reply.nickname} 回复 ${comment.nickname}    ${reply.createtime}
     
  
回复内容:${reply.content}