javaweb realiza sistema de gerenciamento de cobrança de estacionamento

Precisa entrar em contato com QQ: 2248557717 (cobrado)

Endereço de demonstração do projeto: endereço de demonstração [expirou, não há dinheiro para renovar]

Este é o design do nosso curso javaweb, que levou 2 semanas para ser concluído

Idéias de design

O sistema adota a arquitetura B / S, Tomcat9.0 é usado como servidor de execução, baseado no padrão javaEE, IntelliJ IDEA é usado como ambiente de desenvolvimento e o banco de dados usa MySQL8.0. O processo de desenvolvimento usa o modelo de desenvolvimento MVC e o modelo de desenvolvimento JSP + JavaBean + Servlet, que é conveniente para os desenvolvedores projetarem código e pós-manutenção, e essas três lógicas podem ser realizadas ao mesmo tempo, o que melhora a eficiência, economiza tempo , e tem uma hierarquia e uma estrutura claras.

Interface de login

Insira a descrição da imagem aqui

Interface principal

Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui

Código do núcleo

Classe 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;
        }
    }
}

Classe 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;
    }
}

Classe 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 salva o arquivo usado para conexão de banco de dados

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

Design de banco de dados

Tabela do usuário: armazena informações do usuário.
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Tabela de funções: armazena informações de funções. '
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Tabela de gerenciamento de espaço de estacionamento: gerencie as informações e o status do espaço de estacionamento.
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Tabela de registro de veículos: registra informações de entrada e saída de veículos e registros de consumo.
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui

Acho que você gosta

Origin blog.csdn.net/dwjdj/article/details/106689580
Recomendado
Clasificación