开发物流单号系统

前言
前期准备请参考开发Windows物流管理系统——(一)前期准备
要特别指出的是,本项目是团队合作项目,在此仅展示自己完成的部分,剩下的请移步其它组员处:
SertonRy
马农1024
从0学习1024
实现目标
作为后端,首先需要处理前端的需求,根据需要判断逻辑,连接数据库并操作,最后返回操作的结果或者状态给前端。
数据库端的组员提供了数据库的结构,有三张表,分别是买家表,字段是UID、Password和Address;还有卖家表,字段和买家相同;最后有物流表,字段有ID、sellerID、customerID。
我主要负责数据库的删除部分,根据前端组员的需要,细化为登录方法、注册方法、查询物流表方法、更新个人信息方法。
具体代码
函数名 ResponseState delete()

public static ResponseState delete(
            int role, String UID){

        if((UID == null || (UID.length() != 11)) ){
            return ResponseState.IncorrectUID;
        }
        else if(role == 1){
            try {
                return DatabaseOperation.deleteID("sellers", UID);
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
        else if(role == 0){
            try {
                return DatabaseOperation.deleteID("customers", UID);
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
        return ResponseState.Error;
    }

函数作用
判断商家还是用户,根据输入参数调用删除函数,实现删除功能

函数名 Response.ResponseState deleteID()

static public Response.ResponseState deleteID(String table, String UID) throws SQLException{
        Connection databaseConnection = null;
        PreparedStatement databaseStatement = null;
        ResultSet databaseResult = null;
        Response.ResponseState processState = Response.ResponseState.Error;
        try{
         Class.forName("com.mysql.cj.jdbc.Driver");
       databaseConnection = DriverManager.getConnection(DatabaseURL, "SA", "LMSC615");
String SQL = "delete from " + table + " where UID = ?";
 databaseStatement = databaseConnection.prepareStatement(SQL,databaseResult.TYPE_SCROLL_INSENSITIVE, databaseResult.CONCUR_UPDATABLE);
            databaseStatement.setString(1, UID);
            databaseStatement.executeUpdate();

            if ("sellers".equals(table)) {
              return deletePack(UID,"sellers");
            } else {
             return deletePack(UID,"customers");
            }
        }
        catch (SQLException e) {
   processState = Response.ResponseState.DatabaseError;
        }
    catch (ClassNotFoundException e) {
  processState = Response.ResponseState.DriverNotFound;
        }
        finally {
            try {
             assert databaseResult != null;
                databaseResult.close();
             assert databaseStatement != null;
                databaseStatement.close();
            assert databaseConnection != null;
                databaseConnection.close();
            }
            catch(Exception e){

            }
        }
        return processState;
    }
    static private Response.ResponseState deletePack(String UID, String type) throws SQLException{
        Connection databaseConnection2 = null;
        PreparedStatement databaseStatement2 = null;
        ResultSet databaseResult2 = null;
        Response.ResponseState processState = Response.ResponseState.Error;
        try{
         Class.forName("com.mysql.cj.jdbc.Driver")
databaseConnection2 = DriverManager.getConnection(DatabaseURL, "SA", "LMSC615");
   String SQL2;
if ("sellers".equals(type)) {
SQL2 = "delete from packages where SellerID = ?";
            } 
else {
 SQL2 = "delete from packages where CustomerID = ?";
        }
 databaseStatement2 = databaseConnection2.prepareStatement(SQL2,databaseResult2.TYPE_SCROLL_INSENSITIVE, databaseResult2.CONCUR_UPDATABLE);
 databaseStatement2.setString(1, UID);
 databaseStatement2.executeUpdate();
 processState = Response.ResponseState.Done;
        }
catch (SQLException e) {
processState = Response.ResponseState.DatabaseError;
        }
catch (ClassNotFoundException e) {
processState = Response.ResponseState.DriverNotFound;
        }
  finally {
     try {
        assert databaseResult2 != null;
        databaseResult2.close();
         assert databaseStatement2 != null;
        databaseStatement2.close();
         assert databaseConnection2 != null;
        databaseConnection2.close();
            }
            catch(Exception e){

            }
        }
        return processState;
    }

函数作用
连接数据库MySQL,根据前端的响应删除数据库表中的ID号
项目总体实现结果
注册页面
在这里插入图片描述
修改页面
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
存在的问题
这次仍旧时间紧张,整体开发流程相对复杂,但是分工合作效率较高,相对完成度较好。尤其是数据库部署在云端,方便了数据的同步,极大地提高了应用的实用性。后续可以完善物流管理系统,引入商品类型,引入更多的物流种类等等,本次项目只能实现对运单号的处理。没有其他的亮点,GUI设计还要改进。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值