「物流跟踪管理系统」 · Java Swing + MySQL JDBC开发,美和易思结业考试机试试题
目录
文档说明:
一、语言和环境
二、技术要求
三、功能要求
四、数据库设计
五、具体要求及推荐实现步骤
六、注意事项
实现代码:
一、数据库
二、Java Swing
com.ynavc.Bean
com.ynavc.BaseDAO
com.ynavc.OrderDAO
com.ynavc.Vive
com.ynavc.Test
文档说明:
一、语言和环境
- 实现语言:Java。
- 环境要求:MyEclipse、JDK 1.6 以上、MySQL。
二、技术要求
该系统采用 SWING 技术配合 JDBC 使用 JAVA 编程语言完成桌面应用开发。
三、功能要求
某电商公司为了方便客服查看用户的订单信息,需开发一个用户订单管理系统。要求本系统实现以下功能:
1、启动程序后进入主界面,显示所有订单信息,效果如图 1 所示:
![](/assets/blank.gif)
2、在订单编号文本框中输入正确订单号显示该订单信息,如图 2:
![](/assets/blank.gif)
3、选中某个订单后点击删除按钮,提示是否真的要删除,确定后删除该数据。如图 3:
![](/assets/blank.gif)
4. 删除成功后显示删除后订单信息。如图 4:
![](/assets/blank.gif)
四、数据库设计
数据库名为 OrderDb,表结构如下。
表 1 订单表(tb_order)
列名 |
含义 |
数据类型 |
约束(描述) |
id |
编号 |
int |
主键,自动增长 |
name |
商品名称 |
varchar(20) |
非空 |
price |
价格 |
decimal(5,2) |
非空 |
orderID |
所属订单单号 |
varchar(20) |
非空 |
descinfo |
描述 |
varchar(100) |
五、具体要求及推荐实现步骤
- 创建数据库和表
- 创建订单实体类
- 创建 BaseDAO 类完成数据库的连接和关闭
- 创建 OrderDAO 完成对订单的查询与删除功能
- 创建 MainFrame 类并添加相应组件,完成界面设计
- 在 MainFrame 中添加 JTable 完成数据展示。
- 在 MainFrame 中添加 Jbutton 完成数据删除
- 在 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);public MainFrame() {super("物流a跟踪管理系统");this.setBounds(0, 0, 700, 500);getContentPane().setLayout(null);this.setLocationRelativeTo(null);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JLabel title = new JLabel("物流跟踪管理系统");title.setFont(new Font("宋体", Font.BOLD, 40));title.setBounds(182, 13, 336, 50);getContentPane().add(title);JLabel orderid_text = new JLabel("订单编号");orderid_text.setBounds(14, 70, 72, 18);getContentPane().add(orderid_text);orderid = new JTextField();orderid.setBounds(80, 67, 179, 24);getContentPane().add(orderid);orderid.setColumns(10);JButton seach = new JButton("搜索");seach.setBounds(273, 66, 90, 27);getContentPane().add(seach);seach.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {if (orderid.equals("")) {JOptionPane.showMessageDialog(null, "请输入要查询的订单编号!");} else {String id = orderid.getText();data = update.getMainInfo(id);df.setDataVector(data, header);}}});JTable jTable = new JTable(df);JScrollPane scrollPane = new JScrollPane(jTable);scrollPane.setBounds(14, 104, 666, 302);getContentPane().add(scrollPane);JButton delete = new JButton("删除");delete.setBounds(590, 425, 90, 27);getContentPane().add(delete);delete.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {if (jTable.getSelectedColumn()<0) {JOptionPane.showMessageDialog(null, "请选择要删除的数据!");} else {int num = JOptionPane.showConfirmDialog(null, "您真的真的要删除吗?","温馨提示", 0,1);int id = Integer.parseInt(jTable.getValueAt(jTable.getSelectedRow(), 0).toString());if(num == JOptionPane.OK_OPTION){int result = update.addData(id);if (result>0) {JOptionPane.showMessageDialog(null, "删除成功!");orderid.setText("");} else {JOptionPane.showMessageDialog(null, "删除失败!");}}}}});}public static void main(String[] args) {new MainFrame().setVisible(true);}
}
com.ynavc.Test
Test.java
package com.ynavc.Test;import com.ynavc.Vive.MainFrame;public class Test {public static void main(String[] args) {new MainFrame().setVisible(true);}}
「物流跟踪管理系统」 · Java Swing + MySQL JDBC开发,美和易思结业考试机试试题相关推荐
- 「会员卡管理系统」 · Java Swing + MySQL JDBC开发
目录 目录 一.语言和环境 二.实现功能 三.数据库设计 四.具体要求及推荐实现步骤 五.注意事项 六.评分标准 >>>实现代码: 数据库 com.ynavc.Bean com.yn ...
- 「超市管理系统——商品管理」 · Java Swing + MySQL JDBC开发
项目下载:超市管理系统JavaSwing+MySQLJDBC开发_javamysql超市管理系统-互联网文档类资源-CSDN下载 1.9元付费赞助下载:超市管理系统JavaSwing+MySQLJDB ...
- 「艺蜂酒店管理系统」 · Java Swing + mysql 开发 学生毕业设计项目
Java Swing在社会上基本用不到,但是任有学校拿来当做结课设计,只是博主在校期间的一个项目.如果在部署过程中有问题可以在公众号[明金同学]私信我哈,尽力解答. 码云仓库地址:云南农业职业技术学 ...
- 云南农职 - 互联网技术学院 - 美和易思大一SCME JAVA高级结业考试机试试题
目录 一.语言和环境 二.实现功能 1.文件复制功能(IO) 2.消息接受站建设 三.评分标准 四.实现代码 一.语言和环境 实现语言:Java. 开发工具:eclipse. 使用技术:IO流+网络编 ...
- 北大青鸟s2结业考试机试_重庆北大青鸟「学员心声」任何一次的考试,都是一次珍贵的蜕变...
相信不少同学,在每次考完试后都会有一段 "舒适期''.虽然这时候有讲评.有成绩.有排名,但就是感觉学习压力少了许多.然而重庆北大青鸟校区鼓励学员考完要分析.总结考试结果,这样才能更好的找出在 ...
- 超市管理系统java swing+mysql报告_基于java+swing+mysql的超市管理系统
运行环境:java jdk 1.8 IDE环境:Eclipse,Myeclipse,IDEA都可以 硬件环境:windows 7/8/10 2G内存以上(推荐4G,4G以上更好) 可以实现: 销售管理 ...
- 基于java+swing+mysql+JFeeChart的企业人力资源管理系统(1)
文章目录 一,前言 二,项目运行图 (1)主界面(管理员界面) (2)员工资料运行图 (3)全部员工查看运行图 (4)部门管理运行图 (5)岗位管理运行图 (6)工资发放系统运行图 (7)薪酬记录运行 ...
- Java Swing Mysql学生信息管理系统
通过对Swing的理解 此篇为大家推荐基于JAVA Swing Mysql学生信息管理系统 本视频教程一共分为四个阶段,每个阶段都会是上一个阶段的扩展,每一个阶段的系统都可独立作为一个完整的系统 第一 ...
- Java Swing Mysql实现的汽车租赁租车管理系统源码附带设计报告及视频导入运行教程
Java swing mysql实现的简单的汽车租赁管理系统, 主要实现了用户登录注册.管理员添加.查看.编辑.删除汽车信息.用户查看汽车信息.租用车辆.查看自己租用的车辆等功能. 基础开发环境 开发 ...
最新文章
- 2019年《计算机应用基础》,2019年自考《计算机应用基础》模拟练习及答案一
- 如何用python实现自动化办公_python自动化办公操作PPT的实现
- jBPM3.12用户指南中文翻译----第一章 绪论
- ZOJ 3700 Ever Dream(模拟)
- ( function(){…} )()
- eclipse运行报java.lang.OutOfMemoryError: PermGen space解决方法
- matlab桥梁受力计算公式,matlab桥梁计算
- idea javamaven项目 连接sqlserver 数据库方法
- 再见 XShell 和 ITerm 2,是时候拥抱全平台高颜值终端工具 Hyper 了!
- 【java】SPI机制详解
- Python_Tips[6] - is 和 == 的区别
- 一个android应用开发的感悟
- Cent OS防火墙配置端口开放
- 09程序员的修炼之道阅读笔记之三
- Crisis of HDU(母函数)
- 计算机学科 集体备课记录,信息技术学科组集体备课活动记录.pdf
- vivado xilinx IOB = true的使用
- 自动抢红包-辅助功能的使用
- 拼多多搜索智能推广使用教程及FAQ
- 由PVID引起的故障现象