Java程序设计—JDBC实验
Posted 上进小菜猪
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java程序设计—JDBC实验相关的知识,希望对你有一定的参考价值。
实验超市管理系统——商品的管理
知识点
mysql数据库JDBC
学习目标
1.掌握管理员类和的设计和实现的方法,运用三层架构实现商品管理。
2.掌握MySQL数据库的基本操作。
3.应用JDBC技术实现商品的管理
实验任务
任务一:
- 任务分解及分工
主要任务 | 任务分解 | 负责人 |
创建商品表 | 根据小组编号,创建对应的商品表 | 朱博 |
建立数据库连接 | | 朱博 |
制作主菜单 | | 朱博 |
添加商品 | | 朱博 |
查找商品 | 1-根据商品编号查找 2-根据商品名称查找 | 朱博 |
修改商品 | 1-根据商品名称查找 2-根据商品编号查找 找到后修改商品的信息 | 王晓鑫 党国斌 |
删除商品 | 1-根据商品编号删除 | 赵斌 |
| 2-根据商品名称删除 | 孙宗宇 |
整体调试 | | 朱博 |
文档收集整理 | 小组会议拍照; 小组会议记录 | 朱博 |
完成实验报告 | | 朱博 |
增加的其他功能 |
| 朱博 |
2、数据库表截图
包含数据库名,商品表名,商品表的记录,参照用户信息表的截图
3、确定分工后,进一步确定方法
按照给出的例子,填写方法的相关信息
功能 | 返回类型 | 方法名 |
添加熟食包点 | Bun | Addeat() |
根据熟食包点编号删除 根据熟食包点名称删除 | Bun Bun | DeleteeatNumber() DeleteeatName() |
根据熟食包点编号修改 根据熟食包点名称修改 | Bun Bun | CorrecteatNumber() CorrecteatName() |
根据熟食包点编号查找 根据熟食包点名称查找 查询某个熟食包点价格的全部商品 查找全部 | Bun Bun Bun Bun | FindeatNumber() FindeatName() Findspare() Findall() |
根据熟食包点价格排序输出 根据熟食包点库存排序输出 | Bun Bun | Sortprice() sortspare() |
4、如果有小组会议讨论或一对一的讨论,进行截图
任务二 完成个人任务
按照分工完成个人任务。
每个组员,写自己负责的功能的个人任务报告。
组长最后讲个人任务报告填入到最后一部分附件:个人任务报告中。
(文件命名为“第X组-XXX个人任务报告”,组长收齐个人任务报告,放在“第X组个人任务报告”压缩文件中,发到QQ群。)
个人任务报告主要内容包括:
1、功能描述
说明要实现一个什么样的功能,对哪个数据表操作,操作的结果是什么,用户交互是什么样的,即用户输入什么数据,UI界面显示什么数据。
2、功能实现
(1)功能的涉及的类,Eclipse左侧导航栏的包名和类名的截图
(2)顺序的按照实现功能所在的类,粘贴代码
3、运行结果
运行结果截图
4、总结
总结功能实现过程中的经验,比如,遇到什么问题,采用什么方法解决的?
任务三组内考核
组长召开腾讯会议,考核个人任务完成情况,给出组内个人考核成绩(A、B或C)
提交材料包括:
1、腾讯会议的录屏文件
组员顺序进行个人功能展示。展示期间要全程开放摄像头,组员一定出镜。
每个组员顺序的屏幕分享,展示并讲解实现的功能,一定是组员自己讲。
这个录屏文件和个人任务报告是作为教师打分的依据。
2-组内讨论个人考核的成绩。
组长的成绩不用在组内考核,组长在汇报后,组长成绩是小组考核成绩档次+1,比如,小组成绩为良,组长成绩为优;
任务四4月21日小组汇报
讲解小组分工及小组成员完成情况。
讲解实现的基本功能和增加的功能。
讲解部分重要的功能如何实现。
每个小组可以由多名同学分别讲解汇报。
附件:个人任务报告
一、组长个人任务报告
一,前言
这是java老师的一个小组任务。拿来练手,让我对Java入门有了一些基本的感悟与熟悉。
二,页面设计
五组——熟食包点
1-添加熟食包点
2-删除熟食包点
/ >按照编号删除
/ >按照名称删除
3-修改熟食包点
/ >按照编号修改
/ >按照名称修改
4-查询熟食包点
/ >按照熟食编号查询
/ >按照熟食名称查询
/ >按照熟食价格查询
/ >查询全部熟食
5-排序熟食包点
/ >按照价格排序
/ >按照库存排序
6-退出熟食包点
请输入数字,选择菜单功能:
如上为基本的页面设计。
三,具体描述
3.1,添加熟食包点
上述代码块解释:终端输入数字1进入adduser方法,执行添加操作。 依次输入熟食编号,熟食名称,熟食价格,熟食库存。
service.addUser(uid, eatname, eatprice, spare);
调用service的方法进行添加。
3.1.1,service.addUser方法
public void addUser(String uid, String eatname, String eatprice, String spare) throws SQLException
dao.addUser(uid, eatname, eatprice, spare);
接受ui传递的四个属性值,调用dao,进行添加。 起了一个中间传递的作用。
3.1.2,dao方法执行添加sql
添加一条记录。上述代码块解释:
PreparedStatement:是包中的一个接口,继承Statement,里面有已编译的 SQL 语句。 我觉得他的作用就是简化sql繁琐的拼接过程,方便使用。 里面的sql语句里的?就是他的功劳,提高代码的可读性和可维护性。 执行INSERT 添加sql语句。 后使用executeUpdate抽象方法,返回更新计数。
3.2,删除熟食包点
按照编号删除和按照名称删除基本差不多,我们已按照编号删除来写一下。 ui核心代码:
Scanner input = new Scanner(System.in);
int a = input.nextInt();
int m = service.delete(a);
把我们需要删除的id输入,存储到变量a,执行service.delete方法,传递a给service类。
3.2.1,service.delete方法
public int delete(int a) throws SQLException
// TODO Auto-generated method stub
return dao.deletewww(a);
依然是传递作用哈。调用dao,进行删除。
3.2.2,dao方法执行删除sql
public int deletewww(int a) throws SQLException
String sql = "DELETE FROM eat WHERE uid=?";
PreparedStatement pstmt = (PreparedStatement) conn.prepareStatement(sql);
pstmt.setInt(1, a);
return pstmt.executeUpdate();
如上代码解释:
较为简单获取传递的目标id值,执行删除sql语句。 后使用executeUpdate抽象方法,返回更新计数。
3.3,查询熟食包点
举例:按照熟食编号查询
在这里插入图片描述上述代码块解释:
把终端输入的查询目标id存入变量inputeatId,后执行:
UserBean user= service.searchByid(inputeatId);
调用service的方法进行查询。
3.3.1,service.searchByid方法
和上文一样,不多说了,传递的作用。目标dao.searchByid。
3.2.2,dao方法执行查询sql
上述代码块解释: executeQuery()方法来下达select指令以查询数据库。 rs.next():指针指向下一条记录,如果有记录,返回true
user=new UserBean(u,n, psw,s);
传入UserBean实体类。
如果传递的user不为空,执行输出语句。
System.out.format("%-2s %-8s %-5s %-5s"+\\n,"食品编号","食物名称","食物价格","食品库存");
。。。
System.out.format("%-8s %-8s %-8s %-5s "+\\n,user.getNumber(),user.geteatname(),user.geteatprice(),user.getspare());
为了规范输出,对其操作。
3.4,修改熟食包点
以按照编号修改为例上述代码块解释:前面和查询操作一样,先执行查询操作,找到目标值。
System.out.println(user.getNumber()+"\\t"+user.geteatname()+"\\t"+user.geteatprice()+"\\t"+user.getspare());
输出目标的查询结果(和上文查询操作一模一样)。Java程序设计—JDBC实验