「物流跟踪管理系统」 · Java Swing + MySQL JDBC开发,美和易思结业考试机试试题

本文详细描述了一个使用JavaSwing构建的订单管理系统,涉及数据库设计(包括创建OrderDb表结构),Java实体类(如tb_order类)的创建,以及如何使用DAO进行订单查询、删除操作。系统还包括界面组件设计,如JTable展示数据和JButton执行删除操作。
摘要由CSDN通过智能技术生成

图 1 查询订单信息

2、在订单编号文本框中输入正确订单号显示该订单信息,如图 2:

图 2 搜索订单信息

3、选中某个订单后点击删除按钮,提示是否真的要删除,确定后删除该数据。如图 3:

图 3 删除确认

4. 删除成功后显示删除后订单信息。如图 4:

图 4 删除后数据显示

四、数据库设计


数据库名为 OrderDb,表结构如下。

表 1 订单表(tb_order)

列名

含义

数据类型

约束(描述)

id

编号

int

主键,自动增长

name

商品名称

varchar(20)

非空

price

价格

decimal(5,2)

非空

orderID

所属订单单号

varchar(20)

非空

descinfo

描述

varchar(100)

 

五、具体要求及推荐实现步骤


  1. 创建数据库和表

  2. 创建订单实体类

  3. 创建 BaseDAO 类完成数据库的连接和关闭

  4. 创建 OrderDAO 完成对订单的查询与删除功能

  5. 创建 MainFrame 类并添加相应组件,完成界面设计

  6. 在 MainFrame 中添加 JTable 完成数据展示。

  7. 在 MainFrame 中添加 Jbutton 完成数据删除

  8. 在 MainFrame 中添加文本框完成单条数据搜索

六、注意事项


题目:物流跟踪管理系统 

该程序的评分标准如下:

10

数据库和表

 

 

正确创建数据库和表 6 分,测试数据 4 分。必须以分离数据库或脚本方式提交, 否则该项不得分

5

正确创建和编写实体类,包含所有属性及方法

10

正确创建并编写 BaseDAO 完成数据库的连接(5 分)和关闭(5 分)。

30

正确创建并编写 OrderDAO 完成数据查询与删除

 

10

列表数据查询

 

10

单条数据查询

 

10

数据删除

40

创建并编写 MainFrame 类完成界面设计及功能调用

 

5

图 1 中各个组件的设计

 

10

图 1 中数据展示

 

10

图 2 中单条数据并正确展示在 JTable 中

 

5

图 3 中单条数据删除询问

 

10

图 4 中数据删除并展示新数据在 Jtable 中。

5

总体编程技术

 

2

编码规范

 

3

注释完善

总分 

100 分 

实现代码:

=====

一、数据库



– Table structure for tb_order


DROP TABLE IF EXISTS tb_order;

CREATE TABLE tb_order (

id int(11) NOT NULL AUTO_INCREMENT,

name varchar(20) NOT NULL,

price decimal(10,2) NOT NULL,

orderid varchar(20) DEFAULT NULL,

descinfo varchar(100) DEFAULT NULL,

PRIMARY KEY (id)

) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;


– Records of tb_order


INSERT INTO tb_order VALUES (‘1’, ‘iphones Max’, ‘8999.00’, ‘5325781’, ‘杨明金的订单’);

INSERT INTO tb_order VALUES (‘2’, ‘小米10’, ‘3655.00’, ‘20201005’, ‘杨杨的订单’);

INSERT INTO tb_order VALUES (‘3’, ‘华为荣耀10 =’, ‘3200.00’, ‘20201102’, ‘小白的订单’);

二、Java Swing


com.ynavc.Bean

tb_order.java

package com.ynavc.Base;

public class tb_order {

private int id;

private String name;

private double price;

private int orderID;

private String descinfo;

public tb_order() {

super();

}

public tb_order(int id, String name, double price, int orderID, String descinfo) {

super();

this.id = id;

this.name = name;

this.price = price;

this.orderID = orderID;

this.descinfo = descinfo;

}

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public double getPrice() {

return price;

}

public void setPrice(double price) {

this.price = price;

}

public int getOrderID() {

return orderID;

}

public void setOrderID(int orderID) {

this.orderID = orderID;

}

public String getDescinfo() {

return descinfo;

}

public void setDescinfo(String descinfo) {

this.descinfo = descinfo;

}

}

com.ynavc.BaseDAO

DbConnection.java

package com.ynavc.BaseDAO;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import javax.swing.JOptionPane;

import com.mysql.jdbc.Statement;

public class DbConnection {

//驱动类的类名

private static final String DRIVERNAME=“com.mysql.jdbc.Driver”;

//连接数据的URL路径

private static final String URL=“jdbc:mysql://127.0.0.1:3306/orderdb”;

//数据库登录账号

private static final String USER=“root”;

//数据库登录密码

private static final String PASSWORD=“root123”;

//加载驱动

static{

try {

Class.forName(DRIVERNAME);

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

}

//获取数据库连接

public static Connection getConnection() {

try {

return DriverManager.getConnection(URL,USER,PASSWORD);

} catch (SQLException e) {

e.printStackTrace();

}

return null;

}

//查询

public static ResultSet query(String sql) {

System.out.println(sql);

//获取连接

Connection connection=getConnection();

PreparedStatement psd;

try {

psd = connection.prepareStatement(sql);

return psd.executeQuery();

} catch (SQLException e) {

JOptionPane.showMessageDialog(null,“执行语句出错\n”+e.toString());

e.printStackTrace();

}

return null;

}

//增、删、改、查

public static int updataInfo(String sql) {

System.out.println(sql);

//获取连接

Connection connection=getConnection();

try {

PreparedStatement psd=connection.prepareStatement(sql);

return psd.executeUpdate();

} catch (SQLException e) {

JOptionPane.showMessageDialog(null,“执行语句出错\n”+e.toString());

e.printStackTrace();

}

return 0;

}

//关闭连接

public static void colse(ResultSet rs,Statement stmt,Connection conn) throws Exception{

try {

if (rs != null){

rs.close();

}

if (stmt != null){

stmt.cancel();

}

if (conn != null) { conn.close(); }

} catch (Exception e) {

e.printStackTrace(); throw new Exception();

}

}

}

com.ynavc.OrderDAO

Update.java

package com.ynavc.OrderDAO;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.ArrayList;

import com.ynavc.Base.tb_order;

import com.ynavc.BaseDAO.DbConnection;

public class Update {

//查询主页信息

public Object[][] getMainInfo(String id) {

String sql;

if (id.equals(“”)) {

sql = “select * from tb_order”;

}else {

sql = “select * from tb_order WHERE orderid LIKE '”+id+“%';”;

}

ResultSet re = DbConnection.query(sql);

ArrayList<tb_order> list = new ArrayList<tb_order>();

try {

while (re.next()) {

tb_order tb = new tb_order();

tb.setId(re.getInt(1));

tb.setName(re.getString(2));

tb.setPrice(re.getDouble(3));

tb.setOrderID(re.getInt(4));

tb.setDescinfo(re.getString(5));

list.add(tb);

}

} catch (SQLException e) {

e.printStackTrace();

}

Object[][] ob = new Object[list.size()][5];

for (int i = 0; i < list.size(); i++) {

ob[i][0] = list.get(i).getId();

ob[i][1] = list.get(i).getName();

ob[i][2] = list.get(i).getPrice();

ob[i][3] = list.get(i).getOrderID();

ob[i][4] = list.get(i).getDescinfo();

}

return ob;

}

//删除数据

public int addData(int id) {

String sql = “DELETE FROM tb_order WHERE id='”+id+“';”;

return DbConnection.updataInfo(sql);

}

}

com.ynavc.Vive

MainFrame.java

package com.ynavc.Vive;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JScrollPane;

import javax.swing.JTable;

import java.awt.Font;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JTextField;

import javax.swing.table.DefaultTableModel;

import com.ynavc.OrderDAO.Update;

import javax.swing.JButton;

public class MainFrame extends JFrame {

private JTextField orderid;

Update update = new Update();

Object[] header = {“编号”,“商品名称”,“商品价格”,“订单编号”,“订单描述”};

Object[][] data = update.getMainInfo(“”);

DefaultTableModel df = new DefaultTableModel(data, header);

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

写在最后

还有一份JAVA核心知识点整理(PDF):JVM,JAVA集合,JAVA多线程并发,JAVA基础,Spring原理,微服务,Netty与RPC,网络,日志,Zookeeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,设计模式,负载均衡,数据库,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存,Hadoop,Spark,Storm,YARN,机器学习,云计算…

image

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
95%以上Java开发知识点,真正体系化!**

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

写在最后

还有一份JAVA核心知识点整理(PDF):JVM,JAVA集合,JAVA多线程并发,JAVA基础,Spring原理,微服务,Netty与RPC,网络,日志,Zookeeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,设计模式,负载均衡,数据库,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存,Hadoop,Spark,Storm,YARN,机器学习,云计算…

[外链图片转存中…(img-BwI0U5vX-1713518806601)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值