一、项目简述
环境配置:
jdk1.8+Tomcat8.0+MySQL8.0+eclipse
项目技术:
JSP+HTML+JavaScript+Ajax等
主要的功能以及页面为
- 登录页面
- 查询页面(借书功能)
- 还书页面(还书功能)
- 开通新用户页面
- 充值金额页面(充值功能)
效果简介:系统检测到用户未进行登录时自动跳转到登录页面,登录成功后网页提示登录成功并跳转至查询页面若账号密码错误则会提示账号密码不匹配,该页面可以进行借书操作,查询页面可以跳转剩余其他页面,点击注销清除当前用户信息并跳转到登录页面
首先准备好所需要的的实体类(根据个人的数据库来)
用户类Account
package entity;
public class Account {
private String username;
private String password;
private Double money;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Double getMoney() {
return money;
}
public void setMoney(Double money) {
this.money = money;
}
public Account(String username, String password, Double money) {
super();
this.username = username;
this.password = password;
this.money = money;
}
public Account() {
}
}
再准备一个图书类用来封装图书表的数据
图书类(Book)
package entity;
public class Book {
private Integer bid;
private String bname;
private Integer tid;
private String author;
private Integer price;
private Integer status;
private Integer borrowCount;
public Integer getBid() {
return bid;
}
public void setBid(Integer bid) {
this.bid = bid;
}
public String getBname() {
return bname;
}
public void setBname(String bname) {
this.bname = bname;
}
public Integer getTid() {
return tid;
}
public void setTid(Integer tid) {
this.tid = tid;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public Integer getPrice() {
return price;
}
public void setPrice(Integer price) {
this.price = price;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public Integer getBorrowCount() {
return borrowCount;
}
public void setBorrowCount(Integer borrowCount) {
this.borrowCount = borrowCount;
}
public Book(Integer bid, String bname, Integer tid, String author, Integer price, Integer status,
Integer borrowCount) {
super();
this.bid = bid;
this.bname = bname;
this.tid = tid;
this.author = author;
this.price = price;
this.status = status;
this.borrowCount = borrowCount;
}
public Book() {
}
}
由于需要用到表连接所以需要一个图书拓展类
图书拓展类(BookVo)
package entity;
public class BookVo {
private Integer bid;
private String bname;
private Integer tid;
private String tname;
private String author;
private Integer price;
private Integer status;
private Integer borrowCount;
public Integer getBid() {
return bid;
}
public void setBid(Integer bid) {
this.bid = bid;
}
public String getBname() {
return bname;
}
public void setBname(String bname) {
this.bname = bname;
}
public Integer getTid() {
return tid;
}
public void setTid(Integer tid) {
this.tid = tid;
}
public String getTname() {
return tname;
}
public void setTname(String tname) {
this.tname = tname;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public Integer getPrice() {
return price;
}
public void setPrice(Integer price) {
this.price = price;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public Integer getBorrowCount() {
return borrowCount;
}
public void setBorrowCount(Integer borrowCount) {
this.borrowCount = borrowCount;
}
public BookVo(Integer bid, String bname, Integer tid, String tname, String author, Integer price, Integer status,
Integer borrowCount) {
super();
this.bid = bid;
this.bname = bname;
this.tid = tid;
this.tname = tname;
this.author = author;
this.price = price;
this.status = status;
this.borrowCount = borrowCount;
}
public BookVo() {
}
}
根据需要再写一个分页类将查到的内容进行分页查询
分页类(PageBean)
package entity;
import java.util.List;
public class PageBean {
private Integer currPage;
private Integer pageSize;
private Integer totalPage;
private List<?> list;
public Integer getCurrPage() {
return currPage;
}
public void setCurrPage(Integer currPage) {
this.currPage = currPage;
}
public Integer getPageSize() {
return pageSize;
}
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
public Integer getTotalPage() {
return totalPage;
}
public void setTotalPage(Integer totalPage) {
this.totalPage = totalPage;
}
public List<?> getList() {
return list;
}
public void setList(List<?> list) {
this.list = list;
}
public PageBean(Integer currPage, Integer pageSize, Integer totalPage, List<?> list) {
super();
this.currPage = currPage;
this.pageSize = pageSize;
this.totalPage = totalPage;
this.list = list;
}
public PageBean() {
}
}
再准备一个借阅信息类
借阅信息类(Record)
package entity;
import java.util.Date;
public class Record {
private Integer rid;
private Integer bid;
private String username;
private Date lendTime;
private Date returnTime;
private Integer status;
private Double money;
public Integer getRid() {
return rid;
}
public void setRid(Integer rid) {
this.rid = rid;
}
public Integer getBid() {
return bid;
}
public void setBid(Integer bid) {
this.bid = bid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Date getLendTime() {
return lendTime;
}
public void setLendTime(Date lendTime) {
this.lendTime = lendTime;
}
public Date getReturnTime() {
return returnTime;
}
public void setReturnTime(Date returnTime) {
this.returnTime = returnTime;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public Double getMoney() {
return money;
}
public void setMoney(Double money) {
this.money = money;
}
public Record(Integer rid, Integer bid, String username, Date lendTime, Date returnTime, Integer status,
Double money) {
super();
this.rid = rid;
this.bid = bid;
this.username = username;
this.lendTime = lendTime;
this.returnTime = returnTime;
this.status = status;
this.money = money;
}
public Record() {
}
@Override
public String toString() {
return "Record [rid=" + rid + ", bid=" + bid + ", username=" + username + ", lendTime=" + lendTime
+ ", returnTime=" + returnTime + ", status=" + status + ", money=" + money + "]";
}
}
图书类别类(Type)
package entity;
public class Type {
private String tname;
public String getTname() {
return tname;
}
public void setTname(String tname) {
this.tname = tname;
}
public Type(String tname) {
this.tname = tname;
}
public Type() {
}
}
在WebContent/WEB-INF/lib中准备三个jar包并Build Path
创建一个resources包将db.properties链接数据库
在src中创建一个filter包将防止查询时出现乱码的情况
在doFilter中插入两行代码
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
在src中创建一个dao包
写一个BaseDao用于表连接
package dao;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Field;
import java.sql.Con