关于创建时重构该管理系统的遇见的部分问题:
1、对输入日期合法性的判定:例如(20000年??13月32日 25小时:?61分:??61秒??)
解决方法:
//利用正则表达式对输入的字符串数据进行判断 正确返回true 不正确false
//支持“yyyy-MM-dd”格式 和“yyyy-MM-dd hh:mm:ss”格式
//记得导包import java.util.regex.Pattern;
public static boolean isDateTime(String datetime){
Pattern p = Pattern.compile("^((\\d{2}(([02468][048])|([13579][26]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\\s(((0?[0-9])|([1][0-9])|([2][0-4]))\\:([0-5]?[0-9])((\\s)|(\\:([0-5]?[0-9])))))?$");
return p.matcher(datetime).matches();
}
2、对输入读者的年龄进行判断:不可为负数(判断输入的值大于0)
3、对输入读者性别的判断(只能为男、女)
public static boolean chackSex(String sex){
if(sex.equel("男")||sex.equel("女“)){
return true;
}
return false;
}
4、关于逾期图书罚金总金额
方式一:开始用IO流去做:(样式如图所示):但是这种方法不好计算罚金的总金额,因此第二种用数据库去做
方式二:用数据库去做(这样去做 就可以很快的得到总金额)
public double getAllMoneySum() {
Connection conn = null;
try {
conn = JDBCUtils.getConnection();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
String sql="select sum(payfine) from T_returnInfo where overday is not null;";
double value1 = getValue1(conn, sql);
JDBCUtils.closeSource(conn,null,null);
return value1;
}
关于重构该项目的整体设计重点理解
1、结构图:
理解结构图需要注意:
1、操作员只能登录而不能注册(他的注册是由管理员登录后的员工功能管理操作)
2、管理员只能够管理他所创建的操作员
关于使用到的工具类:
1、连接数据库 使用到了JDBC 技术(Java Database Connectivity) 数据库池技术 使用到的数据库池为阿里德鲁伊数据库池
JDBCUtils
2、输入的工具类
TSUtility
TSUtilityes
具体项目代码:
https://gitee.com/sw-ljb/library-manage-systemhttps://gitee.com/sw-ljb/library-manage-system