Jsp+Servlet+Mysql实现图书管理系统

3,155 阅读3分钟

基于某些需要,我尝试着开发图书管理系统,除了注册登录外,实现的系统增删改查的基本功能。

项目名称: 图书信息管理系统

实现方法: Jsp+Servlet+Mysql

工具: eclipse, mysql, Navicat for MySQL

界面展示:

主页面:

添加页面:

修改页面:
数据库:
项目目录形式:

dao用来存放接口 在这个项目中的BookDAO.java就是用来定义接口,其内容包括增删改查的方法。
DbHelper用来连接数据,包括数据库连接地址、数据库用户名、数据库密码等。 entity用来存放实体类,抽象方法的实现都要通过实体类。
web包里我存放servlet文件,servlet文件用来接收前端请求并调用dao接口来实现前端请求,相当于控制器。

实现:

查询所有图书信息

查询所有图书信息由于没有传值,所以可以直接在jsp用Java脚本调用dao中的getAllBook()实现,代码如下:

    <%
   BookDAO dao = new BookDAO(); 
   List<Book> books = dao.getAllBook();
   for(int i = 0;i<books.size();i++){
   Book book = books.get(i);		
	%>
    
    <tr>
    <td><%=book.getId() %></td>
    <td><%=book.getName()%></td>
    <td><%=book.getAuthor()%></td>
    <td><%=book.getCategory()%></td>
    
    <td><a href="DeleteServlet?id=<%=book.getId() %>">删除</a>|<a href="update.jsp?id=<%=book.getId() %>">修改</a></td>
    </tr>
    	                 		<%
					}
					%>

增加

jsp使用post将用户输入的信息传入到AddServlet,Addservlet使用getParameter获取到jsp的值,例如:

String name = req.getParameter("name");

之后Addservlet保存到book并调用dao里面的addBook()方法,通过dao这个接口实现对数据库的操作,调用代码如下:

Book book = new Book();
book.setId(Integer.parseInt(id));
book.setName(name); 
book.setAuthor(author);
book.setCategory(category);
BookDAO dao = new BookDAO();
dao.addBook(book);

当成功完成对数据库的操作之后,我是重定向到all.jsp显示所有图书信息以看到自己添加的信息,代码如下:

req.getRequestDispatcher("all.jsp").forward(req, resp);

删除

在Jsp点击删除操作时,由 DeleteServlet获取到id,这里注意获取到id是String类型要把它转为整型,转换如下:

String idStr = req.getParameter("id");
int id = Integer.valueOf(idStr);

之后DeleteServlet调用dao执行相应的方法,删除对应的id。删除成功之后会重定向到all.jsp以看到删除之后所有图书信息,代码如下:

BookDAO dao=new BookDAO();
dao.deleteBook(id);
req.getRequestDispatcher("AllServlet").forward(req, resp);
req.getRequestDispatcher("all.jsp").forward(req, resp);

修改

在jsp点击修改操作时,由UpdateServlet获取用户输入的修改信息,之后调用dao中updateBook()方法,完成后重定向到all.jsp,调用代码如下:

Book book = new Book();
book.setId(Integer.parseInt(id));
book.setName(name);
book.setAuthor(author);
book.setCategory(category);
BookDAO dao = new BookDAO();
dao.updateBook(book);

查询

这里的查询我只写了按照图书名称进行查询。

查询时由jsp把要查询的图书名称传给SelectServlet,SelectServlet获取到要查询的图书名称name,执行到里面的selectBook()方法,之后查询到的信息存入数组list,之后由JSP获取,代码如下:

String name = req.getParameter("name");	
BookDAO dao = new BookDAO();
List<Book> list = dao.selectBook(name);		
req.setAttribute("list", list);
req.getRequestDispatcher("queryshow.jsp").forward(req, resp);

jsp获取list的Java脚本如下:

    ArrayList<Book> list = (ArrayList<Book>)request.getAttribute("list");
                       for(Book book:list){
								%>
    
    <tr>
    <td><%=book.getId() %></td>
    <td><%=book.getName()%></td>
    <td><%=book.getAuthor()%></td>
    <td><%=book.getCategory() %></td>
    
    <td><a href="DeleteServlet?id=<%=book.getId() %>">删除</a>|<a href="update.jsp?id=<%=book.getId() %>">修改</a></td>
    </tr>
    	         		<%
					}
				%>

结束语: 这次实现图书管理系统是出于某种原因对我过去所学知识的一次总结和学习,这次做这个小项目花费的时间也比较长,遇到的问题也不少,但总的来说还是比较顺利,这次分享这篇文章希望对你跟我多多少少有点帮助。