美和易思 - JAVA开发&移动互联网 阶段性教学效果检测考试机试试题【题目:维护洗衣店消费项数据】
一、 语言和环境
1. 实现语言:Java 语言。
2. 环境要求:Eclipse 或 Myeclipse+MySQL。
二、 功能需求
利用 Java Swing 和 JDBC 技术维护洗衣店消费项数据。
具体要求如下:
1. 首界面显示洗衣店所有的消费项目信息,如图 1 所示。

2. 点击“新增”按钮,弹出消费项新增界面,如图 2 所示。输入消费项相关信息之后,点击 “新增”按钮,在数据库中新增一条消费项记录,并返回至图 1 刷新消费项数据;点击“返 回”按钮则取消新增,返回至图 1。

3. 在图 1 所示的消费项显示界面中,选中所需修改的消费项,点击“修改”按钮,弹出消费项修改界面,如图 3 所示。消费项信息修改完毕之后,点击“修改”按钮,完成该消费项信息的更新,并返回至图 1 刷新消费项数据;点击“返回”按钮,则取消更新,返回至图 1。

三、数据库设计
数据库名为 db_cosume,表名为 tb_items,具体表结构见下表。

四、注意事项:
1. 在工程中添加 MySQL 驱动。
2. 注意程序逻辑分明、命名规范以及书写有缩进。
3. 添加适当的注释。
4. 消费项测试数据至少三条。
五、评分标准

六、实现代码:
下载链接:https://pan-yz.chaoxing.com/external/m/file/488056817269772288
Mysql:
-- ----------------------------
-- Table structure for `tb_items`
-- ----------------------------
DROP TABLE IF EXISTS `tb_items`;
CREATE TABLE `tb_items` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`item_name` varchar(30) NOT NULL,
`unit_price` decimal(4,1) NOT NULL,
`member_price` decimal(4,1) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of tb_items
-- ----------------------------
INSERT INTO `tb_items` VALUES ('1', '外套', '10.0', '9.0');
INSERT INTO `tb_items` VALUES ('2', '裤子', '8.0', '7.0');
INSERT INTO `tb_items` VALUES ('3', '衬衫', '8.0', '7.0');
INSERT INTO `tb_items` VALUES ('4', '领带', '6.0', '5.0');
INSERT INTO `tb_items` VALUES ('5', '风衣', '16.0', '15.0');
INSERT INTO `tb_items` VALUES ('6', '羊毛衫', '16.0', '15.0');
INSERT INTO `tb_items` VALUES ('7', '羽绒服', '20.0', '23.0');
INSERT INTO `tb_items` VALUES ('8', '短裙', '6.0', '5.0');
INSERT INTO `tb_items` VALUES ('9', '长裙', '10.0', '9.0');
INSERT INTO `tb_items` VALUES ('10', '羊绒裙', '18.0', '16.0');
INSERT INTO `tb_items` VALUES ('11', '西服', '20.0', '18.0');
INSERT INTO `tb_items` VALUES ('12', '床单', '12.0', '10.0');
Java:
1、com.test.Dao >>DbConnection
package com.test.Dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.mysql.cj.xdevapi.Statement;
public class DbConnection {
//驱动类的类名
private static final String DRIVERNAME="com.mysql.cj.jdbc.Driver";
//连接数据的URL路径
private static final String URL="jdbc:mysql://localhost:3306/db_cosume?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=CONVERT_TO_NULL";
//数据库登录账号
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) {
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) {
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) { ((java.sql.Statement) stmt).cancel(); }
if (conn != null) { conn.close(); }
} catch (Exception e) {
e.printStackTrace(); throw new Exception();
}
}
}
2、com.test.Entity >> tb_items
package com.test.Entity;
public class tb_items {
private int id;//消费项编号
private String item_name;//消费项名称
private String unit_price;//单价
private String member_price;//会员价
//重写toString()方法
@Override
public String toString() {
return "tb_items [id=" + id + ", item_name=" + item_name + ", unit_price=" + unit_price + ", member_price="
+ member_price + "]";
}
//无参构造
public tb_items() {
super();
}
//有参构造
public tb_items(int id, String item_name, String unit_price, String member_price) {
super();
this.id = id;
this.item_name = item_name;
this.unit_price = unit_price;
this.member_price = member_price;
}
//get、set方法
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getItem_name() {
return item_name;
}
public void setItem_name(String item_name) {
this.item_name = item_name;
}
public String getUnit_price() {
return unit_price;
}
public void setUnit_price(String unit_price) {
this.unit_price = unit_price;
}
public String getMember_price() {
return member_price;
}
public void setMember_price(String member_price) {
this.member_price = member_price;
}
}
3、com.test.Vive >> MainFrame
package com.test.Vive;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import com.test.Controller.Select;
import com.test.Entity.tb_items;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class MainFrame extends JFrame {
Object[] columnNames = {"商品编号","名称","类别名称","库存"};
Object[][] data = Select.getTb_items();
DefaultTableModel df = new DefaultTableModel(data, columnNames);
JTable jTable;
public MainFrame() {
super("消费项管理");
this.setBounds(0, 0, 800, 500);
this.setLocationRelativeTo(null);//让窗口在屏幕中间显示
this.setResizable(false);//让窗口大小不可改变
getContentPane().setLayout(null);
jTable=new JTable(df);
JScrollPane jp = new JScrollPane(jTable);
jp.setBounds(0, 87, 794, 350);
getContentPane().add(jp);
JButton jubtton_Add = new JButton("新增");
jubtton_Add.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
IncreaseGUL increaseGUL = new IncreaseGUL();
increaseGUL.setVisible(true);
}
});
jubtton_Add.setBounds(522, 31, 87, 34);
getContentPane().add(jubtton_Add);
JButton jubtton_Revise = new JButton("修改");
jubtton_Revise.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
if (jTable.getSelectedColumn()<0) {
JOptionPane.showMessageDialog(null, "请选择要修改的数据!");
} else {
tb_items items = new tb_items();
items.setId(Integer.parseInt(jTable.getValueAt(jTable.getSelectedRow(), 0).toString()));
items.setItem_name(jTable.getValueAt(jTable.getSelectedRow(), 1).toString());
items.setUnit_price(jTable.getValueAt(jTable.getSelectedRow(), 2).toString());
items.setMember_price(jTable.getValueAt(jTable.getSelectedRow(), 3).toString());
ModifyGUI modifyGUI = new ModifyGUI(items);
modifyGUI.setVisible(true);
}
}
});
jubtton_Revise.setBounds(642, 31, 80, 34);
getContentPane().add(jubtton_Revise);
}
}
4、com.test.Vive >> IncreaseGUL
package com.test.Vive;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import com.test.Controller.Updata;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
public class IncreaseGUL extends JFrame{
private JTextField textField;
private JTextField textField_1;
private JTextField textField_2;
public IncreaseGUL() {
super("新增消费项");
this.setBounds(0, 0, 491, 341);
this.setLocationRelativeTo(null);//让窗口在屏幕中间显示
this.setResizable(false);//让窗口大小不可改变
getContentPane().setLayout(null);
JLabel label = new JLabel("名称");
label.setBounds(85, 52, 72, 18);
getContentPane().add(label);
textField = new JTextField();
textField.setBounds(138, 49, 172, 24);
getContentPane().add(textField);
textField.setColumns(10);
JLabel label_1 = new JLabel("单价");
label_1.setBounds(85, 101, 72, 18);
getContentPane().add(label_1);
textField_1 = new JTextField();
textField_1.setColumns(10);
textField_1.setBounds(138, 98, 172, 24);
getContentPane().add(textField_1);
JLabel label_1_1 = new JLabel("会员价");
label_1_1.setBounds(85, 146, 72, 18);
getContentPane().add(label_1_1);
textField_2 = new JTextField();
textField_2.setColumns(10);
textField_2.setBounds(138, 143, 172, 24);
getContentPane().add(textField_2);
JButton button = new JButton("新增");
button.setBounds(85, 218, 113, 27);
getContentPane().add(button);
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//INSERT INTO `tb_items` VALUES ('1', '外套', '10.0', '9.0');
String sql = "INSERT INTO tb_items VALUES (null, '"+textField.getText()+"', '"+textField_1.getText()+"', '"+textField_2.getText()+"');";
int result = Updata.addData(sql);
if (result>0) {
JOptionPane.showMessageDialog(null, "新增成功!");
MainFrame m =new MainFrame();
m.dispose();
m.setVisible(true);
dispose();
} else {
JOptionPane.showMessageDialog(null, "新增失败!");
}
}
});
JButton button_1 = new JButton("返回");
button_1.setBounds(265, 218, 113, 27);
getContentPane().add(button_1);
button_1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
dispose();
}
});
}
}
5、com.test.Vive >> ModifyGUI
package com.test.Vive;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import com.test.Controller.Updata;
import com.test.Entity.tb_items;
public class ModifyGUI extends JFrame{
private JTextField textField;
private JTextField textField_1;
private JTextField textField_2;
public ModifyGUI(tb_items items) {
super("消费项修改");
this.setBounds(0, 0, 491, 341);
this.setLocationRelativeTo(null);//让窗口在屏幕中间显示
this.setResizable(false);//让窗口大小不可改变
getContentPane().setLayout(null);
JLabel label = new JLabel("消费项");
label.setBounds(38, 65, 72, 18);
getContentPane().add(label);
textField = new JTextField();
textField.setBounds(95, 62, 129, 24);
getContentPane().add(textField);
textField.setColumns(10);
textField.setText(items.getItem_name());
JLabel label_1 = new JLabel("单价");
label_1.setBounds(254, 65, 72, 18);
getContentPane().add(label_1);
textField_1 = new JTextField();
textField_1.setColumns(10);
textField_1.setBounds(311, 62, 129, 24);
getContentPane().add(textField_1);
textField_1.setText(items.getUnit_price());
textField_2 = new JTextField();
textField_2.setColumns(10);
textField_2.setBounds(95, 129, 129, 24);
getContentPane().add(textField_2);
textField_2.setText(items.getMember_price());
JLabel label_2 = new JLabel("会员价");
label_2.setBounds(38, 132, 72, 18);
getContentPane().add(label_2);
JButton button = new JButton("修改");
button.setBounds(85, 218, 113, 27);
getContentPane().add(button);
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String sql = "UPDATE tb_items SET item_name='"+textField.getText()+"',unit_price='"+textField_1.getText()+"',member_price='"+textField_2.getText()+"' WHERE id="+items.getId()+"";
int result = Updata.addData(sql);
if (result>0) {
JOptionPane.showMessageDialog(null, "修改成功!");
dispose();
} else {
JOptionPane.showMessageDialog(null, "修改失败!");
}
}
});
JButton button_1 = new JButton("返回");
button_1.setBounds(265, 218, 113, 27);
getContentPane().add(button_1);
button_1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
dispose();
}
});
}
}
6、com.test.Vive >> Select
package com.test.Controller;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import com.test.Dao.DbConnection;
import com.test.Entity.tb_items;
public class Select {
public static Object[][] getTb_items() {
String sql = "SELECT * FROM tb_items";
ResultSet resultSet = DbConnection.query(sql);
ArrayList<tb_items> list=new ArrayList<tb_items>();
try {
while (resultSet.next()) {
tb_items tb=new tb_items();
tb.setId(resultSet.getInt(1));
tb.setItem_name(resultSet.getString(2));
tb.setUnit_price(resultSet.getString(3));
tb.setMember_price(resultSet.getString(4));
list.add(tb);
}
} catch (SQLException e) {
e.printStackTrace();
}
Object[][] objects=new Object[list.size()][4];
for(int i=0;i<list.size();i++) {
objects[i][0]=list.get(i).getId();
objects[i][1]=list.get(i).getItem_name();
objects[i][2]=list.get(i).getUnit_price();
objects[i][3]=list.get(i).getMember_price();
}
return objects;
}
}
7、com.test.Vive >> Updata
package com.test.Controller;
import com.test.Dao.DbConnection;
public class Updata {
//添加数据
public static int addData(String sql) {
return DbConnection.updataInfo(sql);
}
}
8、com.test.Vive >> Test
package com.test.Test;
import com.test.Vive.MainFrame;
public class Test {
public static void main(String[] args) {
MainFrame mainFrame = new MainFrame();
mainFrame.setVisible(true);
}
}
美和易思 - JAVA开发&移动互联网 阶段性教学效果检测考试机试试题【题目:维护洗衣店消费项数据】的更多相关文章
- 云南农职 - 互联网技术学院 - 美和易思大一SCME JAVA高级结业考试机试试题
目录 一.语言和环境 二.实现功能 1.文件复制功能(IO) 2.消息接受站建设 三.评分标准 四.实现代码 一.语言和环境 实现语言:Java. 开发工具:eclipse. 使用技术:IO流+网络编 ...
- 「物流跟踪管理系统」 · Java Swing + MySQL JDBC开发,美和易思结业考试机试试题
目录 文档说明: 一.语言和环境 二.技术要求 三.功能要求 四.数据库设计 五.具体要求及推荐实现步骤 六.注意事项 实现代码: 一.数据库 二.Java Swing com.ynavc.Bean ...
- 编写Java程序,实现简单的五子棋博弈游戏(美和易思Java练习习题)
package com.qq.gb; import java.util.Scanner; public class GoBang { Scanner sc = new Scanner(System.i ...
- 基于java开发jsp+ssm+mysql实现的在线考试系统 源码下载
实现的关于在线考试的功能有:用户前台:用户注册登录.查看考试信息.进行考试.查看考试成绩.查看历史考试记录.回顾已考试卷.修改密码.修改个人信息等,后台管理功能(脚手架功能不在这里列出),科目专业管理 ...
- 华为机试正式版(西安c/c++/java),今天下午去机试的题目,新奇出炉了!
下面题目都是回顾的.题目都非常easy, 大家有些基础就能够參加!(语言能够是c/c++.也能够是java的) 题目一(60分): 字符串操作. 将小写转换成大写, 将大写转化为小写, 数字的不做转换 ...
- 用Emacs进行Java开发
用Emacs进行Java开发 */--> code {color: #FF0000} pre.src {background-color: #002b36; color: #839496;} 用 ...
- JAVA开发搞了一年多的大数据,究竟干了点啥
JAVA开发搞了一年多大数据的总结 2021年7月份加入了当前项目组,以一个原汁原味的Java开发工程师的身份进来的,来了没多久,项目组唯一一名大数据开发工程师要离职了,一时间一大堆的数据需求急需 ...
- HTML5 +Java基础 大一结业认证考试试题 - 云南农业职业技术学院 - 互联网技术学院 - 美和易思校企合作专业
第1题 [单选题][0.33分][概念理解] 关于java中的逻辑运算符,下列说法正确的是 逻辑运算符||.&&.!都是用于连接两个关系表达式</p> 当&&am ...
- 【EatBook】-NO.2.EatBook.2.JavaArchitecture.1.001-《修炼Java开发技术在架构中体验设计模式和算法之美》-
1.0.0 Summary Tittle:[EatBook]-NO.2.EatBook.2.JavaArchitecture.1.001-<修炼Java开发技术在架构中体验设计模式和算法之美&g ...
随机推荐
- 转 关于HttpClient,HttpURLConnection,OkHttp的用法
转自:https://www.cnblogs.com/zp-uestc/p/10371012.html 1 HttpClient入门实例 1.1发送get请求 1 2 3 4 5 6 7 8 9 10 ...
- Linux学习 - 流程控制
一.if语句 1 单分支if条件语句 (1) if [ 条件判断式 ];then 程序 fi (2) if [ 条件判断式 ] then 程序 fi 例:检测根分区的使用量 2 双分支if条件语 ...
- rust方法集
随机数.数字对比.控制台输入 use std::io; use std::cmp::Ordering; use rand::Rng; fn main() { println!("please ...
- EM配置问题
配置EM,首先要保证dbconsole在运行. C:\Users\dingqi>emctl start dbconsoleEnvironment variable ORACLE_UNQNAME ...
- 统计网卡流量的两段shell脚本(使用ifconfig)
一个很小巧的shell脚本,使用ifconfig的不间断输出来统计网卡的流量,有需要的朋友可以参考下 使用shell脚本计算Linux网卡流量,方法中最关键点: ifconfig $eth_name ...
- 使用jstl和el表达式来展示request域中存放的user对象的信息
<%@ page import="java.util.ArrayList" %><%@ page import="java.util.List" ...
- 【JavaWeb】【MySQL】【edu01】jdbc.properties配置文件的编写
前提准备 导入 mysql-connector-java-版本号 的jar包 下面为大家提供几个jar包下载地址 点击进入下载界面 >>推荐 MySQL官方 多版本选择 点击进入下载界面 ...
- 使用RabbitMQ搭建MQTT服务
由于近期公司需要搭建一套物联网采集环境,底层设备采用MQTT协议传输数据.服务器环境为linux,考虑到现有环境已经有RabbitMQ环境,Rabbit是基于AMQP协议开发的一套高效的消息传输队列. ...
- JS21. 使用原生JS封装一个公共的Alert插件(HTML5: Shadow Dom)
效果预览 Shadow DOM Web components 的一个重要属性是封装--可以将标记结构.样式和行为隐藏起来,并与页面上的其他代码相隔离,保证不同的部分不会混在一起,可使代码更加干净.整 ...
- MySQL数据库行转列
一.数据源如下所示 二.对应SQL语句如下所示 -- 行转列 SELECT t1.`产品名称`, SUM(CASE t1.`日期` WHEN '2019-11-11' THEN t1.`数量` ELS ...