javaEE009.04 添加Book&删除Book、修改Book(未整合修改和添加功能)(添加之后重新调用一下查询的方法以更新数据)、数据库的兼容性比java更强、删除前的确认、、找子代后代

系列文章目录

前言

接上一篇

一、添加Book&删除Book

添加

想一想,这个添加是直接请求servelet吗?
在这里插入图片描述
答案是,不可以直接请求servlet,为啥呢,是不是很费解,因为直接请求servlet没有数据啊,数据从哪来呢
回顾一下我们以前打的请求servlet的代码
如:图书管理
如:
发现我们这里不一样的地方了吗
在这里插入图片描述
先分析业务流程
在这里插入图片描述
分析完之后,后面就很简单了,我们可以直接写代码了
其实前面如果认真看了,并且会了,这里是大同小异的
分析完之后就开始撸代码了
因为bean(跟数据库保存一致)前面已经写好了,

下面开始写dao、service、servlet层

因为前面文章写过几遍了,虽然代码不同,但是模式是一模一样的,我们这里就不非常详细说了

dao层分为接口和实现类

接口(写抽象方法):
在这里插入图片描述
实现类(必须,实现这个抽象方法)
在这里插入图片描述
注意上面,因为 返回类型是 void 所以 方法体的最后不用返回 不用return
写完dao后测试一下
在这里插入图片描述
如果数据库中是非空的(事实上我们这里设计的也是如此)
非空的怎么办
给它一个默认值(非空)
复制这个
在这里插入图片描述
放到构造器中 这样就设置好默认值了
在这里插入图片描述
以后你在构造器中传不传值都无所谓了,
传null也是这个路径,传什么都是这个路径,写死了

在这里插入图片描述
接口没有问题了,那就开始写service了

也是两个
一个是接口:
跟dao层一样
一个是实现类:
在这里插入图片描述
接着是servlet
前端jsp先写一下
注意这里一定要加上 method=“post” 否则 如果默认是get 会覆盖掉我们提交的 上一个参数,导致无法识别我们的 addBook (方法)
在这里插入图片描述

servlet在这里插入图片描述
跳转:还是应该跳转到book_manager页面
但是是直接跳转吗?
只能说最终是这个页面,
但是你不能直接跳过去
如果你直接跳过去就太天真了,根本没有更新的数据

易错点,跳转

解决办法:跳转之前重新查询一次
那怎么重新查询呢?
所以我们干脆再调一下之前写的查询方法就行了
在这里插入图片描述
但是在开发当中除了这种写法,我们还有另外一种写法

充电线里面加参数
在这里插入图片描述
实际上跟前面的直接调用是一回事
这三种方法都必须要会
然后测试就没有问题了
在这里插入图片描述

添加功能 的小结与思考 —— 小白实际上手遇到的问题(上面都有答案)

1、写完dao 之后还要不要写单元测试?如果要写,怎么写?很容易没有思路俗称短路
很简单,不要想得那么复杂,答案如下,明镜亦非台,本来无一物,何处惹尘埃
注意id列插null值就好
在这里插入图片描述
在这里插入图片描述

2、图书的路径,要怎么处理?添加图书的时候,并没有路径给你选择

3、类型转换,怎么转?
在这里插入图片描述
转换如下:
在这里插入图片描述
4、跳转之后没有刷新怎么解决?
在这里插入图片描述
在这里插入图片描述
尝试解决解决办法之一,不要使用转发,改为使用重定向,重定向会改变地址栏路径
在这里插入图片描述
结果失败,是刷新了,但是没有重新加载数据
在这里插入图片描述
如果设置成动态编译呢?试过也不行,那么解决办法到底是什么呢?

删除

删除是增删改查里面最简单的
在这里插入图片描述
为什么说是最简单的,想一想它需要跳转页面吗
不需要
如果我们做一个功能,特别是增删查改如果没有思路,说明基本功还不扎实,需要继续写代码来加强能力

在这里插入图片描述
怎么把ID带过去,这个可能是一个难点
怎么带?可以通过地址栏、隐藏域还可以通过什么方式呢?
不可以放隐藏域,因为隐藏域必须要有表单,表单提交才可以有效的使用隐藏域
在这里插入图片描述
后面的操作跟添加是一样的
三层逐步写完
dao层
(1)dao的接口
在这里插入图片描述

在这里插入图片描述
所以我们可以看出,数据库的兼容性比java(C#)更强,不用过于担心这些问题
所以我们可以在java代码里面也把id设置成字符串,有什么好处?
在这里插入图片描述
好处是我们底层就不用再做转换了
在这里插入图片描述
能兼容就不用转换了
(2)dao的实现类
在这里插入图片描述
service层
service的接口
在这里插入图片描述
service的实现类:

在这里插入图片描述
然后就到了servlet
在这里插入图片描述
至此完成添加和删除
下面开始测试,发现删除似乎少了什么,删除得太随意了,很容易勿删,对客户来说是非常不友好的
所以我们要加 删除前的确认

删除前的确认 —— 客户确定删除再删除

在这里插入图片描述

使用jquery
在这里插入图片描述

测试
在这里插入图片描述
持续优化,提示用户的时候,提示用于现在删除的是哪个,是否确定删除某某数据

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最后测试
在这里插入图片描述

如果忘记了,可以看一下前面的文章,或者直接找jquery文档,看一下怎么写
第二种更简单的方式:
在这里插入图片描述
在这里插入图片描述

总结

1、
多敲几遍就会了
增删查改
会其中一个就基本会了,会其中增加和删除,后面的都可以举一反三自己完成了

2、
这里很好的把后端和前端关联了起来,比如前面学的jquery,不要以为没有用,用处有时候是很大的
3、注意中英文状态下问号也是不一样的
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在系统中,读者创建账户,账户内存储读者个人的详细信息,读者可以凭借借书卡号:readerid在系统进行图书的查询、借阅、还书操作,完成借书的同时要修改相应图书信息的状态、读者信息中的已借数量、在借阅表中添加书籍、 读者信息管理:读者信息修改 读者注销账户跳回首页 图书信息管理:包括图书信息添加 查询 修改功能。管理员登录成功后,可以浏览所有图书信息和搜索特定图书的信息---搜索出来的可以进行添加图书、删除图书以及修改图书信息。 图书借阅管理:包括图书借阅和归还功能。 图书借阅功能:先输入读者编号,然后输入要借阅图书的信息,记录系统当时间即借阅时间borrowdate和归还时间returndate 图书归还功能:先输入读者编号,然后输入要还图书的信息,记录系统当时间即归还时间returndate; 删除借阅信息,更改管理日志表whether 用户修改个人信息——实现功能 用户通过点击右上角用户名,跳转到个人页面,个人页面显示个人的详细信息,点击修改按钮跳转到修改页面,修改页面回显个人详细信息修改后点击确定。 成功——弹出成功信息,跳回个人页面并更新列表 失败——弹出失败信息,跳回个人页面。 用户查询信息——实现功能 用户通过点击右上角用户名,跳到个人页面,个人页面显示个人的详细信息(只显示不修改) 三、功能需求 功能划分:该系统主要有以下功能:浏览功能查询功能添加功能修改功能删除功能功能描述详解:①浏览 列出当数据库中的图书信息、读者信息、借阅信息和还书信息(管理员日志)、 ②查 按照图书编号进行查询书籍信息、读者编号进行查询读者信息、借还界面查询书目与读者匹配信息 ③增 添加图书和读者记录、 借书和还书记录(管理日志) ④改 修改书目和读者信息及管理员信息、 读者借阅和归还图书在管理员日志上的变动及在图书信息表上的变动 ⑤删 删除书目和读者信息及管理员信息 ⑥各种弹框制定 ⑦运用CSS对页面进行显示处理 ⑧网页布局采用封面型布局

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值