Java Web 图书管理系统

Java Web案例:学完Java Web后做的一个案例,为了巩固JavaWeb的知识,利于后续学习框架,如果有哪些地方写的不好 也请大家指教(#.#)

图书馆管理系统
项目介绍
IDE: eclipse
所用设计模式: 三层架构
语言: Java
数据库: MySQL
Web服务器: Tomcat
Action: Servlet
View: Jsp
JavaScript框架:jQuery
项目较小未用maven
无涉及Spring Spring-MVC Mybatis
主要功能
用户登录注销
用户信息编辑
图书详情
书本的添加、编辑、删除

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
下面放了一些模块的代码

登录servlet

package cn.book.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import cn.book.entity.Admin;
import cn.book.service.IAdminService;
import cn.book.service.impl.AdminServiceImpl;

/**

  • 登录功能的servlet
    */
    public class LoginServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    request.setCharacterEncoding(“UTF-8”);
    response.setCharacterEncoding(“UTF-8”);
    response.setContentType(“text/html; charset=UTF-8”);
    String uName=request.getParameter(“uName”);
    int uPwd=Integer.parseInt(request.getParameter(“uPwd”));
    Admin admin=new Admin(uName,uPwd);
    PrintWriter out=response.getWriter();

     IAdminService adminService=new AdminServiceImpl();
     String count=adminService.queryAdminInfoByUnameandUpwd(admin);//通过用户名和密码查询用户
     Admin oneAdmin=adminService.queryAdminByUname(uName);//查询一个用户的信息
     
     if(count==null) {
     	request.setAttribute("login", "noLogin");
     }else {
     	HttpSession session=request.getSession();
     	//session.setAttribute("admin", admin);
     	session.setAttribute("uName", uName);
     	//session.setAttribute("oneAdmin", oneAdmin);
    

// session.setMaxInactiveInterval(-1);//设置session的超时时间
ServletContext application= request.getServletContext();
application.setAttribute(“oneAdmin”, oneAdmin);
}

	try{
		Thread.sleep(500);
	}catch(InterruptedException e) {
		e.printStackTrace();
	}catch(Exception e) {
		e.printStackTrace();
	}
	
	request.getRequestDispatcher("QueryAllBookServlet").forward(request, response);
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	
	doGet(request, response);
}

}

dao层

package cn.book.dao.impl;
/*

  • 数据访问层的实现类
    */
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.List;

import cn.book.dao.IBookDao;
import cn.book.entity.Book;
import cn.book.util.DBUtil;

//数据访问层:原子性的增删改查
public class BookDaoImpl implements IBookDao {

//判断该本书是否存在与数据库(增、删、改前必须判断)
public boolean isExist(int bookNum) {
	return queryBookByNum(bookNum)==null?false:true;//true:本书存在;false:本书不存在
}

//增加书本
public boolean addBook(Book book) {

	//使用DBUtil帮助类解决代码冗余
	String sql="insert into books (bookNum,bookName,bookWriter,bookPress,bookPrice,bookIntroduce) values (?,?,?,?,?,?)";
	Object[] obj=new Object[6];//数组的长度=sql语句的?占位符的个数
	obj[0]=book.getBookNum();
	obj[1]=book.getBookName();
	obj[2]=book.getBookWriter();
	obj[3]=book.getBookPress();
	obj[4]=book.getBookPrice();
	obj[5]=book.getBookIntroduce();
	return DBUtil.executeUpdate(sql, obj);
}

//根据书本编号删除书本
public boolean deleteBookByNum(int bookNum) {

	String sql="delete from books where bookNum=?";
	Object[] obj=new Object[1];//数组的长度=sql语句的?占位符的个数
	obj[0]=bookNum;
	return DBUtil.executeUpdate(sql, obj);
}

//根据书本编号修改书本信息:修改成book
public boolean updateBookByNum(int bookNum,Book book) {

	String sql="update books set bookName=?,bookWriter=?,bookPress=?,bookPrice=?,bookIntroduce=? where bookNum=?";
	Object[] obj=new Object[6];//数组的长度=sql语句的?占位符的个数
	obj[0]=book.getBookName();
	obj[1]=book.getBookWriter();
	obj[2]=book.getBookPress();
	obj[3]=book.getBookPrice();
	obj[4]=book.getBookIntroduce();
	obj[5]=bookNum;
	return DBUtil.executeUpdate(sql, obj);
}

//查询全部书本
public List<Book> queryAllBook() {
	Book book=null;
	ResultSet rs=null;
	List<Book> books=new ArrayList<>();

	String sql="select * from books";
	//没有?占位符
	rs=DBUtil.executeQuery(sql, null);
	try {
		while(rs.next()) {
			int num=rs.getInt("bookNum");
			String name=rs.getString("bookName");
			String writer=rs.getString("bookWriter");
			String press=rs.getString("bookPress");
			double price=rs.getDouble("bookPrice");
			String introduce=rs.getString("bookIntroduce");
			book=new Book(num,name,writer,press,price,introduce);
			books.add(book);//list集合
		}
	}catch (SQLException e) {
		e.printStackTrace();
	}
	finally {//外界使用ResultSet 需要自行关闭

		DBUtil.clossAll(rs, DBUtil.pstmt, DBUtil.con);//调用帮助类的close通用方法
}
	return books;
}

//根据书本编号查一本书
public Book queryBookByNum(int bookNum) {
	Book book=null;
	ResultSet rs=null;

	String sql="select * from books where bookNum=?";
	Object[] obj=new Object[1];//数组的长度=sql语句的?占位符的个数
	obj[0]=bookNum;
	rs=DBUtil.executeQuery(sql,obj);
	try {
		if(rs.next()) {
		int num=rs.getInt("bookNum");
		String name=rs.getString("bookName");
		String writer=rs.getString("bookWriter");
		String press=rs.getString("bookPress");
		double price=rs.getDouble("bookPrice");
		String introduce=rs.getString("bookIntroduce");
		book=new Book(num,name,writer,press,price,introduce);
	}
		return book;
	} catch (SQLException e) {
		e.printStackTrace();
		return null;
	} catch (Exception e) {
		e.printStackTrace();
		return null;
	}finally {//外界使用ResultSet 需要自行关闭

		DBUtil.clossAll(rs, DBUtil.pstmt, DBUtil.con);//调用帮助类的close通用方法
	}
}

}

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值