javaweb实现停车场收费管理系统

需要的联系QQ:2248557717(收费的)

项目演示地址:演示地址【已经过期,没钱续费】

这是我们javaweb的课程设计,历时2周完成

设计思想

该系统采用了B/S架构,Tomcat9.0作为运行服务yanshi器,基于javaEE标准,以IntelliJ IDEA作为开发环境,数据库采用了MySQL8.0。开发过程利用了MVC开发模式和JSP+JavaBean+Servlet开发模式,该模式便于开发人员设计代码和后期维护,且这三个逻辑可以同时进行,提高了效率,节省了时间,层次分明,结构清晰。

登陆界面

在这里插入图片描述

主界面

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

核心代码

SQLUtil类

package DBUtil;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class SQLUtil {
    
    
    //执行非查询语句(delete、update、insert)
    public static int executeNonQuery(String sqlCmd, Object[] objList) {
    
    
        Connection conn = null;//数据库连接对象
        Statement sm = null;//可执行sql语句的Statement对象
        int result = -1;//返回结果,-1为数据操作失败,非-1为操作成功
        try {
    
    
            conn = DBUtil.ConnectionFactory.getConnection();//获取数据库连接对象
            if (objList != null)//判断是否有传入参数(也就是判断 Object[] objList 是否为空)
            {
    
    
                PreparedStatement pStatement = conn.prepareStatement(sqlCmd);//创建可执行带参数SQL命令 pStatement对象
                //对参数进行赋值
                for (int i = 0; i < objList.length; i++) {
    
    
                    pStatement.setObject(i + 1, objList[i]);//获取传入参数的值
                }
                result = pStatement.executeUpdate();//执行相应命令
            } else {
    
    //采用字符串拼接方式
                conn = DBUtil.ConnectionFactory.getConnection();//获取数据库连接对象
                sm = conn.createStatement();//创建可执行sql语句的Statement对象
                result = sm.executeUpdate(sqlCmd);//执行相应sql命令,返回更新的条数
            }
        } catch (Exception e) {
    
    
            e.printStackTrace();
        } finally {
    
    
            DBUtil.CloseFactory.close(conn, sm);//关闭相应资源
            return result;//如果操作成功,返回的是被影响的行数,否则返回-1,操作失败
        }
    }
    @SuppressWarnings("finally")
    //执行查询操作 返回List型的数据集合   (如select *from table/select name,age from table)
    public static List<Object> executeQuery(String sqlCmd, Object[] objList) {
    
    
        Connection conn = null;
        Statement sm = null;
        ResultSet rSet = null;
        List<Object> list = new ArrayList<Object>();
        try {
    
    
            conn = DBUtil.ConnectionFactory.getConnection();//获取数据库连接对象
            if (objList != null)//判断是否有参数传入
            {
    
    
                PreparedStatement pStatement = conn.prepareStatement(sqlCmd);//生成PreparedStatement,用于执行T-SQL命令
                for (int i = 0; i < objList.length; i++) {
    
    
                    pStatement.setObject(i + 1, objList[i]);//填充占位符
                }
                rSet = pStatement.executeQuery();//执行查询命令,返回ResultSet
                ResultSetMetaData rsmdData = rSet.getMetaData();//得到结果集的结构信息
                int column = rsmdData.getColumnCount();//获取返回的单条数据的字段数目
                while (rSet.next()) {
    
    
                    Object[] object = new Object[column];//对象数值,用于作为获取单条数据的载体
                    for (int i = 1; i <= column; i++) {
    
    
                        object[i - 1] = rSet.getObject(i);
                    }
                    list.add(object);//将获取的数据添加到集合中
                }
            } else {
    
    
                System.out.println("我进入空的之中了");
                //conn=DBUtil.ConnectionFactory.getConnection();//获取数据库连接对象
                sm = conn.createStatement();//创建Statement对象
                rSet = sm.executeQuery(sqlCmd);//执行查询查询命令
                System.out.println("rSet =" + rSet);
                ResultSetMetaData rsmdData = rSet.getMetaData();
                int column = rsmdData.getColumnCount();//获取单条数据中属性个数(如 select name,age from employee)属性为:name,age
                while (rSet.next()) {
    
    
                    Object[] object = new Object[column];
                    for (int i = 1; i <= column; i++) {
    
    
                        object[i - 1] = rSet.getObject(i);
                    }
                    list.add(object);//将相应数据添加到集合中
                }
            }
        } catch (Exception e) {
    
    
            e.printStackTrace();
            list = null;
        } finally {
    
    
            DBUtil.CloseFactory.close(conn, sm, rSet);
            return list;
        }
    }
    //执行标量操作,返回首行首列的数据   select count(*) from table/select name from table
    public static Object excuteScalar(String sqlCmd, Object[] objList) {
    
    
        Connection conn = null;
        Statement sm = null;
        ResultSet rSet = null;
        Object obj = null;
        try {
    
    
            conn = DBUtil.ConnectionFactory.getConnection();
            if (objList != null) {
    
    
                PreparedStatement pStatement = conn.prepareStatement(sqlCmd);
                for (int i = 0; i < objList.length; i++) {
    
    
                    pStatement.setObject(i + 1, objList[i]);//给SQL语句的占位符赋值的,
                }
                rSet = pStatement.executeQuery();
                while (rSet.next()) {
    
    
                    obj = rSet.getObject(1);
                    break;
                }
            } else {
    
    
                conn = DBUtil.ConnectionFactory.getConnection();
                sm = conn.createStatement();
                rSet = sm.executeQuery(sqlCmd);
                while (rSet.next()) {
    
    
                    obj = rSet.getObject(1);
                    break;
                }
            }
        } catch (Exception e) {
    
    
            e.printStackTrace();
        } finally {
    
    
            CloseFactory.close(conn, sm, rSet);
            return obj;
        }
    }
}

ConnectionFactory类

package DBUtil;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Properties;
public class ConnectionFactory {
    
    
    private static String user;
    private static String pwd;
    private static String url;
    private static String driver;
    static {
    
    
        InputStream iStream = ConnectionFactory.class.getClassLoader().getResourceAsStream("DBUtil/db.properties");//读取db.properties配置文件
        Properties prop = new Properties();
        try {
    
    
            prop.load(iStream);
            user = prop.getProperty("user");//获取配置文件中的user对应的值
            pwd = prop.getProperty("pwd");//获取配置文件中的pwd对应的值
            url = prop.getProperty("url");//获取配置文件中的url对应的值
            driver = prop.getProperty("driver");//获取配置文件中的driver对应的值
        } catch (Exception e) {
    
    
            e.printStackTrace();
        }
    }
    public static Connection getConnection() {
    
    
        Connection conn = null;
        try {
    
    
            Class.forName(driver);//数据库驱动注册
            conn = DriverManager.getConnection(url, user, pwd);//获取数据库链接对象
        } catch (Exception e) {
    
    
            e.printStackTrace();
        }
        return conn;
    }
}

CloseFactory类

package DBUtil;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
//方法重载
public class CloseFactory {
    
    
    //关闭Connection conn,Statement sm
    public static void close(Connection conn, Statement sm) {
    
    
        close(conn);
        close(sm);
    }
    //关闭Connection conn,Statement sm,ResultSet rs
    public static void close(Connection conn, Statement sm, ResultSet rs) {
    
    
        close(conn);
        close(sm);
        close(rs);
    }
    //关闭数据库链接对象
    public static void close(Connection conn) {
    
    
        try {
    
    
            if (conn != null) {
    
    
                conn.close();
            }
        } catch (Exception e) {
    
    
            e.printStackTrace();
        }
    }
    //关闭Statement对象
    public static void close(Statement sm) {
    
    
        try {
    
    
            if (sm != null) {
    
    
                sm.close();
            }
        } catch (Exception e) {
    
    
            e.printStackTrace();
        }
    }
    //关闭ResultSet对象
    public static void close(ResultSet rs) {
    
    
        try {
    
    
            if (rs != null) {
    
    
                rs.close();
            }
        } catch (Exception e) {
    
    
            e.printStackTrace();
        }
    }

}

db.properties保存用于数据库连接的文件

user=root
pwd=1855010107
url=jdbc:mysql://127.0.0.1:3306/park_car?serverTimezone=GMT%2B8
driver=com.mysql.cj.jdbc.Driver

数据库设计

用户表:存储用户信息。
在这里插入图片描述
在这里插入图片描述
角色表:存储角色信息。‘
在这里插入图片描述
在这里插入图片描述
车位管理表:管理车位信息和车位状态。
在这里插入图片描述
在这里插入图片描述
车辆记录表:记录车辆进出信息和消费记录。
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/dwjdj/article/details/106689580
今日推荐