1)文笔有限,如果发现博客有书写有误的地方恳请读者直言不讳,我一定会第一时间改正。
2)代码的具体实现可以参考代码中的注释,如果由于注释不清楚而不明白相应原理,可以与作者私聊。码字不易,有兴趣的小伙伴点个赞呗,大家相互学习。
3)本篇博客为Java书城项目第一阶段:表单验证,如需了解该项目的其它部分,也可以查看以下链接:
- Java书城项目第一阶段:表单验证
- Java书城项目第二阶段:用户模块
- Java书城项目第三阶段:优化
- Java书城项目第四阶段:图书模块
- Java 书城项目最终阶段:总结与视频演示
- Java 书城项目源代码
4)该项目技术栈为:Java、MySQL、HTML、CSS、JavaScript、JQuery、XML、Tomcat、Servlet等,兄弟们也可查看我的其它文章,下面为链接:
- 静态网页开发技术之HTML
- 动态网页开发技术之JSP
- EL表达式与JSTL标签库
- Servlet必知必会
在慢慢增加了,等等哈
1 需求
这一阶段的内容是第二阶段用户登录模块的拓展,进一步学习了项目中最常用的遍历、增、删、改、查。
1.1 具体需求
需要的界面如下图所示,通过点击页面上的修改、删除或者添加图书,可以实现我们功能。
2 数据库
2.1 创建图书模块所需要的数据库表
#下面就是为了创建图书模块的数据库
create table book(
`id` int primary key auto_increment,
`name` varchar(100),
`price` decimal(11,2),
`author` varchar(100),
`sales` int,
`stock` int,
`img_path` varchar(200)
);
## 插入初始化测试数据
insert into book(`id` , `name` , `author` , `price` , `sales` , `stock` , `img_path`)
values(null , 'java从入门到放弃' , 'sharm' , 80 , 9999 , 9 , 'static/img/default.jpg');
insert into book(`id` , `name` , `author` , `price` , `sales` , `stock` , `img_path`)
values(null , '数据结构与算法' , 'sharm' , 78.5 , 6 , 13 , 'static/img/default.jpg');
insert into book(`id` , `name` , `author` , `price` , `sales` , `stock` , `img_path`)
values(null , 'Java编程思想' , 'sharm' , 99.5 , 47 , 36 , 'static/img/default.jpg');
insert into book(`id` , `name` , `author` , `price` , `sales` , `stock` , `img_path`)
values(null , '操作系统原理' , 'sharm' , 133.05 , 122 , 188 , 'static/img/default.jpg');
insert into book(`id` , `name` , `author` , `price` , `sales` , `stock` , `img_path`)
values(null , '大话设计模式' , 'sharm' , 89.15 , 20 , 10 , 'static/img/default.jpg');
## 查看表内容
select id,name,author,price,sales,stock,img_path from book;
2.2 创建表对应的JavaBean对象
在pojo包
下新建Book.java
作为上表所对应的JavaBean
对象。
import java.math.BigDecimal;
public class Book {
//1 首先是定义变量
//Integer可以为null,而int不能为null
private Integer id;
private String name;
private String author;
private BigDecimal price;
private Integer sales;
private Integer stock;
private String imgPath = "static/img/default.jpg";
//2 接下来是无参构造函数
public Book(){
}
//3 接下来是有参构造函数
public Book(Integer id, String name, String author, BigDecimal price, Integer sales, Integer stock, String imgPath) {
this.id = id;
this.name = name;
this.author = author;
this.price = price;
this.sales = sales;
this.stock = stock;
// 要求给定的图书封面图书路径不能为空
if (imgPath != null && !"".equals(imgPath)) {
this.imgPath = imgPath;
}
}
//4 然后是getter与setter方法
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void