Java GUI+SQL Server开发车辆管理系统
一、程序功能设计
本项目为“车辆管理系统”,需包含一下功能:
1)车辆管理模块,增删查改车辆信息
2)租车管理模块,增删查改租车记录
3)换车管理模块,增删查改换车记录
4)修车管理模块,增删查改修车记录
5)利润分析模块,计算车辆经营利润
本项目采用Java Swing进行设计,以SqlServer 2017作为数据库支撑程序的正常操作。
二、数据库功能设计
1.数据库需求分析设计
由于本项目车辆管理系统的数据均保存在数据库中,并以Java作为设计系统的语言,提供车辆信息的提供、保存、更新和查询,此时就需要求数据库结构能充分满足各种车辆信息以及租车还车修车的相信的输出和输入,收集基本数据、数据结构以及数据处理的流程,成为一套详细的数据字典,为系统提供有力的支撑,并未后面的具体设计打下基础。
1.1 数据流程图
1.2 数据库表设计
三、系统运行效果图
3.1 登录页面
3.2 主页
3.3 车辆信息管理
3.4 租车信息管理
3.5 还车信息管理
3.6 修车信息管理
四、部分核心代码
1.数据库查询
public static List<RentCar> queryRentCarInfo() {
String sql = "select * from t_rentCar";
List<RentCar> list = new ArrayList<RentCar>();
try {
PreparedStatement ps = con.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
RentCar car = new RentCar();
car.setId(rs.getInt(1));
car.setRentDate(rs.getString(2));
car.setName(rs.getString(3));
car.setCarId(rs.getInt(4));
car.setPrice(rs.getFloat(5));
list.add(car);
}
rs.close();
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
2.数据库修改
public static boolean modifyRentCarInfo(RentCar car) {
String sql = "update t_rentCar set RentDate=?,Name=?,CarID=?,Price=? where id=?";
try {
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, car.getRentDate());
ps.setString(2, car.getName());
ps.setInt(3, car.getCarId());
ps.setFloat(4, car.getPrice());
ps.setInt(5, car.getId());
int rs = ps.executeUpdate();
ps.close();
return rs != 0;
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
3.数据库删除
public static boolean deleteRentCarInfo(int id) {
String sql = "delete from t_rentCar where id=?";
try {
PreparedStatement ps = con.prepareStatement(sql);
ps.setInt(1, id);
int rs = ps.executeUpdate();
ps.close();
return rs != 0;
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
4.登录管理员
public static boolean adminLogin(String username, String password) {
String sql = "select Username from t_admin where Username=? and password=?";
boolean flag = false;
try {
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, username);
ps.setString(2, password);
ResultSet rs = ps.executeQuery();
if (rs.next()) {
flag = true;
}
rs.close();
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
return flag;
}
四、总结与展望
通过这次Java语言的数据库项目实验,让我加深了对Java语言和数据库有了一定的了解,而不只是单单的在课本中学到的那些理论,平时乏味的课程,通过自己动手亲自编写,变的生动有趣,而在自己动手的过程中,出现的问题很多,比理论要难的多,当一个程序写完以后,经常会有很多错误而没法解决。不过,通过几天的实验,逐渐积攒了一些经验,有些错误可以很快就看出来。
这次实验有很大的收获,让我对Java语言有了更深的认识,平时在课堂上学到的东西可以自己动手编写,将其转化成一些实用的技能。如果是一个程序写完一处错误也没有,会有种成就感,于是兴趣就来了,兴趣来了,自然学的东西也就多了,能把理论变成实际的技能,让我对Java语言有了浓厚的兴趣和更深层的认识。