javaweb简单的图书管理系统
实验报告
实验课程:Web应用开发
学生姓名:
学号:
专业班级:
2018年6月18日
南昌大学实验报告
学生姓名:学号:专业班级:
实验类型:□验证■综合□设计□创新实验日期:实验成绩:
一、实验项目名称
《Web应用开发》综合训练
二、实验目的和要求
使用Java+JSP+Servlet技术,选用EL、JSTL、Struts、Hibernate、myBatis、jQuery 等技术,开发一个基本Web的应用程序,以达到掌握Web应用开发的基本原理、具备使用Java+JSP+Servlet技术结合流行框架技术开发Web应用程序的能力,从而提升学生的Web编程能力。
要求学生自选题目,开发一个模拟的Web应用程序。可以一人一题,也可以多人一题。但是每人必须单独完成动态Web页面10页以上。
要求学生根据需求描述独自完成需求分析,软件设计、程序模块设计以及程序的编写、调试和测试。
设计和程序完成后,要求根据指定的格式要求,独自完成设计报告的撰写。
三、实验基本情况
本实训要求根据下述需求陈述写出需求分析文本并进行软件开发,并列出源代码和运行结果。
四、需求分析
项目介绍
这是一个简单的图书管理系统,由一个管理员来实现对用户的删除,图书的增加,修改和图书的删除功能,用户注册登录后可以实现对图书的借阅和归还。由于时间关系在设计项目时有很多不好的地方,未来得及修改,在管理员登录界面采用了图形验证码,由于是同样的技术,在用户登录界面就没有采用图形验证技术。
功能需求
1.用户注册
2.图书添加
3.图书修改
4.用户管理
5.图书借阅
6.归还图书
五、软件设计ER图
程序流程
数据库设计
模块设计及运行结果
项目整体采用MVC 模式,整体上运用jsp+javabean+servlet+jdbc+dao,每个jsp页面采用jQuery技术作为背景,实现简单的动态背景,部分页面运用EL、JSTL、js中的点击事件、Bootsrap、图形验证码、分页技术以及邮箱页面。
六、源代码
1.用户类User.Java
package vo;
public class User {
private String name,pwd;
public String getName() {
return name;
}
public void setName(String name) {
https://www.360docs.net/doc/b818576250.html, = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
}
2.图书类bookinfo.java
package vo;
public class bookinfo
{
private String bno,bname,author,price,other;
public String getBno() {
return bno;
}
public void setBno(String bno) {
this.bno = bno;
}
public String getBname() {
return bname;
}
public void setBname(String bname) {
this.bname = bname;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
public String getOther() {
return other;
}
public void setOther(String other) {
this.other = other;
}
}
3.借书信息类https://www.360docs.net/doc/b818576250.html,
package vo;
public class lendbook
{
private String username, bno,bname,author,price,other;
public String getUsername() {
return username;
}
public void setUsername(String username) {
https://www.360docs.net/doc/b818576250.html,ername = username;
}
public String getBno() {
return bno;
}
public void setBno(String bno) {
this.bno = bno;
}
public String getBname() {
return bname;
}
public void setBname(String bname) { this.bname = bname;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) { this.author = author;
}
public String getPrice() {
return price;
}
public void setPrice(String price) { this.price = price;
}
public String getOther() {
return other;
}
public void setOther(String other) { this.other = other;
}
}
4.用户功能UserDao.java
package dao;
import java.util.List;
import java.sql.*;
import java.util.ArrayList;
import vo.bookinfo;
import https://www.360docs.net/doc/b818576250.html,er;
import vo.lendbook;
import dbc.JdbcUtil;
public class UserDao
{
public void add(User user) throws Exception{//添加用户Connection conn=null;
PreparedStatement ps=null;
try
{
conn=JdbcUtil.getConnection();
String sql="insert into user values(?,?)";
ps=conn.prepareStatement(sql);
ps.setString(1, user.getName());
ps.setString(2, user.getPwd());
ps.executeUpdate();
}
finally
{
JdbcUtil.free(null, ps, conn);
}
}
public void add_book(bookinfo book) throws Exception{//添加图书Connection conn=null;
PreparedStatement ps=null;
try
{
conn=JdbcUtil.getConnection();
String sql="insert into book_info values(?,?,?,?,?)";
ps=conn.prepareStatement(sql);
ps.setString(1, book.getBno());
ps.setString(2, book.getBname());
ps.setString(3, book.getAuthor());
ps.setString(4, book.getPrice());
ps.setString(5, book.getOther());
ps.executeUpdate();
}
finally
{
JdbcUtil.free(null, ps, conn);
}
}
public void lend_book(lendbook book) throws Exception{//借出图书Connection conn=null;
PreparedStatement ps=null;
try
{
conn=JdbcUtil.getConnection();
String sql="insert into lendbook values(?,?,?,?,?,?)";
ps=conn.prepareStatement(sql);
ps.setString(1, book.getUsername());
ps.setInt(2, Integer.parseInt(book.getBno()));
ps.setString(3, book.getBname());
ps.setString(4, book.getAuthor());
ps.setString(5, book.getPrice());
ps.setString(6, book.getOther());
ps.executeUpdate();
}
finally
{
JdbcUtil.free(null, ps, conn);
}
}
public List
Connection conn=null; PreparedStatement ps=null;
ResultSet rs=null;
List
{
conn=JdbcUtil.getConnection();
String sql="select * from user";
ps=conn.prepareStatement(sql);
rs=ps.executeQuery();
while(rs.next()){
User user=new User();
user.setName(rs.getString(1));
user.setPwd(rs.getString(2));
userList.add(user);
}
}
finally
{
JdbcUtil.free(rs, ps, conn);
}
return userList;
}
public void delete(String bookno) throws Exception//删除图书
{
Connection conn=null;
PreparedStatement ps=null;
try{
conn=JdbcUtil.getConnection();
String sql="delete from book_info where bno=?";
ps=conn.prepareStatement(sql);
ps.setString(1, bookno);
ps.executeUpdate();
}
finally{
JdbcUtil.free(null, ps, conn);
}
}
public void returnbook(String bno,String username) throws Exception//归还图书
{
Connection conn=null;
PreparedStatement ps=null;
try{
conn=JdbcUtil.getConnection();
String sql="delete from lendbook where bno=? and username=?";
ps=conn.prepareStatement(sql);
ps.setString(1, bno);
ps.setString(2, username);
ps.executeUpdate();
}
finally{
JdbcUtil.free(null, ps, conn);
}
}
public void delete_user(String username) throws Exception//删除用户{
Connection conn=null;
PreparedStatement ps=null;
try{
conn=JdbcUtil.getConnection();
String sql="delete from user where name=?";
ps=conn.prepareStatement(sql);
ps.setString(1, username);
ps.executeUpdate();
}
finally{
JdbcUtil.free(null, ps, conn);
}
}
public int getPageCount() throws Exception{//分页Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;
int recordCount=0,t1=0,t2=0;
try
{
conn=JdbcUtil.getConnection();
String sql="select count(*) from book_info";
ps=conn.prepareStatement(sql);
rs=ps.executeQuery();
rs.next();
recordCount=rs.getInt(1);
t1=recordCount%5;
t2=recordCount/5;
}
finally
{
JdbcUtil.free(null, ps, conn);
}
return t1==0?t2:t2+1;
}
public List
{
Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;
int pageSize=5;
int startRecno=(pageNo-1)*pageSize;
List
try
{
conn=JdbcUtil.getConnection();
String sql="select * from book_info order by bno limit ?,?";
ps=conn.prepareStatement(sql);
ps.setInt(1, startRecno);
ps.setInt(2, pageSize);
rs=ps.executeQuery();
while(rs.next()){
bookinfo book=new bookinfo();
book.setBno(rs.getString(1));
book.setBname(rs.getString(2));
book.setAuthor(rs.getString(3));
book.setPrice(rs.getString(4));
book.setOther(rs.getString(5));
bookList.add(book);
}
}
finally
{
JdbcUtil.free(rs, ps, conn);
}
return bookList;
}
public List
{
Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;
List
try
{
conn=JdbcUtil.getConnection();
String sql="select * from lendbook where username=?";
ps=conn.prepareStatement(sql);
ps.setString(1,username );
rs=ps.executeQuery();
while(rs.next()){
lendbook book=new lendbook();
book.setUsername(rs.getString(1));
book.setBno(rs.getString(2));
book.setBname(rs.getString(3));
book.setAuthor(rs.getString(4));
book.setPrice(rs.getString(5));
book.setOther(rs.getString(6));
bookList.add(book);
}
}
finally
{
JdbcUtil.free(rs, ps, conn);
}
return bookList;
}
public void modify_book(bookinfo book) throws Exception{//修改图书Connection conn=null;
PreparedStatement ps=null;
try
{
conn=JdbcUtil.getConnection();
String sql="update book_info set bname=?,author=?,price=?,other=? where bno=?";
ps=conn.prepareStatement(sql);
ps.setString(1, book.getBname());
ps.setString(2, book.getAuthor());
ps.setString(3, book.getPrice());
ps.setString(4, book.getOther());
ps.setString(5, book.getBno());
ps.executeUpdate();
}
finally
{
JdbcUtil.free(null, ps, conn);
}