图书管理系统 Struts+hibernate
Posted yangchas
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图书管理系统 Struts+hibernate相关的知识,希望对你有一定的参考价值。
目录结构如下
com.action>> BookAction.java LoginAction.java com.bean>> Admin.java Book.java Admin.hbm.xml Book.hbm.xml com.dao>> AdminDao.java BookDao.java com.util>> HibernateSessionFactory.java hibernate.cfg.xml struts.xml WebRoot>> WEB-INF>> web.xml book_add.jsp borrow.jsp index.jsp login.jsp main.jsp
BookAction.java>>
package com.action; import java.util.List; import com.bean.Book; import com.dao.BookDao; import com.opensymphony.xwork2.ActionContext; public class BookAction private Book book; private int id; private String name; //查询图书 public void query() BookDao bookDao=new BookDao(); Book book1=new Book(); if (!name.isEmpty()) book1=bookDao.findBookByName(name); ActionContext.getContext().getSession().put("book", book1); public String addBook() System.out.println("进入了addBook方法"); BookDao bookDao=new BookDao(); if(book.getId() == null) bookDao.addBook(book); System.out.println("新增书名:"+book.getName()); else bookDao.updateBook(book); System.out.println("修改书id:"+book.getId()); return bookList(); public String bookList() BookDao bookDao=new BookDao(); List<Book> books=bookDao.findBookAll(); ActionContext.getContext().getSession().put("b", books); System.out.println("进入了booklist方法"); return "main"; public String bookEdit() BookDao bookDao=new BookDao(); Book book=bookDao.findBookById(id); ActionContext.getContext().getSession().put("bo", book); System.out.println("进入了bookEdit方法,id:"+id); return "book_edit"; //get请求 返回user_add页面 public String bookAdd() if (ActionContext.getContext().getSession().containsKey("bo")) ActionContext.getContext().getSession().remove("bo"); return "book_add"; public String delete() BookDao bookDao=new BookDao(); bookDao.deleteBookById(id); System.out.println("进入了delet方法,id:"+id); return bookList(); public Book getBook() return book; public void setBook(Book book) this.book = book; public int getId() return id; public void setId(int id) this.id = id; public String getName() return name; public void setName(String name) this.name = name;
LoginAction.java>>
package com.action; import com.bean.Admin; import com.dao.AdminDao; import com.opensymphony.xwork2.ActionContext; public class LoginAction private Admin admin; public String login() if (!admin.getName().isEmpty()&&!admin.getPassword().isEmpty()) AdminDao adminDao=new AdminDao(); Admin user=adminDao.findAdminByName(admin.getName()); if (user.getPassword().equals(admin.getPassword())) ActionContext.getContext().getSession().put("flag", "0"); ActionContext.getContext().getSession().put("user", user); System.out.println("成功登录!用户名:"+user.getName()); return "main"; ActionContext.getContext().getSession().put("flag", "1"); System.out.println("成功失败!用户名:"+admin.getName()); return "login"; public String loginOut() boolean flag=ActionContext.getContext().getSession().containsKey("user"); if (flag) ActionContext.getContext().getSession().remove("user"); return "loginOut"; System.out.println(flag); return "loginOut"; public String main() boolean flag=ActionContext.getContext().getSession().containsKey("user"); if (flag) return "main"; else return "login"; public Admin getAdmin() return admin; public void setAdmin(Admin admin) this.admin = admin;
Admin.java>>
package com.bean;
import java.sql.Timestamp;
/**
* Admin entity. @author MyEclipse Persistence Tools
*/
public class Admin implements java.io.Serializable
// Fields
private Integer id;
private String name;
private String password;
private Short sex;
private Short type;
private Timestamp createDate;
// Constructors
/** default constructor */
public Admin()
/** minimal constructor */
public Admin(String name)
this.name = name;
/** full constructor */
public Admin(String name, String password, Short sex, Short type, Timestamp createDate)
this.name = name;
this.password = password;
this.sex = sex;
this.type = type;
this.createDate = createDate;
// Property accessors
public Integer getId()
return this.id;
public void setId(Integer id)
this.id = id;
public String getName()
return this.name;
public void setName(String name)
this.name = name;
public String getPassword()
return this.password;
public void setPassword(String password)
this.password = password;
public Short getSex()
return this.sex;
public void setSex(Short sex)
this.sex = sex;
public Short getType()
return this.type;
public void setType(Short type)
this.type = type;
public Timestamp getCreateDate()
return this.createDate;
public void setCreateDate(Timestamp createDate)
this.createDate = createDate;
Book.java>>
package com.bean; import java.sql.Timestamp; /** * Book entity. @author MyEclipse Persistence Tools */ public class Book implements java.io.Serializable // Fields private Integer id; private String name; private String author; private String publisher; private Short type; private Short state; private Integer time; private String category; private Timestamp createDate; // Constructors /** default constructor */ public Book() /** minimal constructor */ public Book(String name) this.name = name; /** full constructor */ public Book(String name, String author, String publisher, Short type, Short state, Integer time, String category, Timestamp createDate) this.name = name; this.author = author; this.publisher = publisher; this.type = type; this.state = state; this.time = time; this.category = category; this.createDate = createDate; // Property accessors public Integer getId() return this.id; public void setId(Integer id) this.id = id; public String getName() return this.name; public void setName(String name) this.name = name; public String getAuthor() return this.author; public void setAuthor(String author) this.author = author; public String getPublisher() return this.publisher; public void setPublisher(String publisher) this.publisher = publisher; public Short getType() return this.type; public void setType(Short type) this.type = type; public Short getState() return this.state; public void setState(Short state) this.state = state; public Integer getTime() return this.time; public void setTime(Integer time) this.time = time; public String getCategory() return this.category; public void setCategory(String category) this.category = category; public Timestamp getCreateDate() return this.createDate; public void setCreateDate(Timestamp createDate) this.createDate = createDate;
Admin.hbm.xml 自动生成
Book.hbm.xml 自动生成
AdminDao.java>>
package com.dao; import org.hibernate.Query; import org.hibernate.Session; import com.bean.Admin; import com.util.HibernateSessionFactory; public class AdminDao //查询一条 public Admin findAdminByName(String name) Session session=HibernateSessionFactory.getSession(); String sql="from Admin ad where ad.name=\\‘"+name+"\\‘"; Query query = session.createQuery(sql); // query.setString(1, name); Admin admin = (Admin) query.list().get(0); HibernateSessionFactory.closeSession(); return admin;
BookDao.java>>
package com.dao; import java.util.ArrayList; import java.util.List; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.Transaction; import com.bean.Admin; import com.bean.Book; import com.util.HibernateSessionFactory; public class BookDao //增加一条 public boolean addBook(Book book) Session session=HibernateSessionFactory.getSession(); Transaction transaction=session.beginTransaction(); session.save(book); System.out.println("保存成功!!"); transaction.commit(); HibernateSessionFactory.closeSession(); return true; //获取所有 public List<Book> findBookAll() Session session=HibernateSessionFactory.getSession(); Transaction transaction=session.beginTransaction(); String hql="from Book"; Query query=session.createQuery(hql); List<Book> list =query.list(); transaction.commit(); HibernateSessionFactory.closeSession(); return list; //查询一条 public Book findBookById(int id) Session session=HibernateSessionFactory.getSession(); Book book=session.get(Book.class,id); HibernateSessionFactory.closeSession(); return book; //查询一条 public Book findBookByName(String name) Session session=HibernateSessionFactory.getSession(); String sql="from Book where name like \\‘"+name+"%\\‘"; Query query = session.createQuery(sql); // query.setString(1, name); Book book=new Book(); if (query.list().size()>0) book = (Book) query.list().get(0); HibernateSessionFactory.closeSession(); return book; //删除一条 public boolean deleteBookById(int id) Session session=HibernateSessionFactory.getSession(); Transaction trans=session.beginTransaction(); Book book=session.get(Book.class,id); session.delete(book); trans.commit(); HibernateSessionFactory.closeSession(); return true; //更新 public boolean updateBook(Book book) Session session=HibernateSessionFactory.getSession(); Transaction trans=session.beginTransaction(); session.update(book); trans.commit(); HibernateSessionFactory.closeSession(); return true;
HibernateSessionFactory.java 自动生成
hibernate.cfg.xml 自动生成
hibernate.cfg.xml>>
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <package name="default" extends="struts-default"> <!--book相关 --> <action name="add_book" class="com.action.BookAction" method="addBook"> <result name="main" type="redirect">/main.jsp</result> </action> <action name="delete_book" class="com.action.BookAction" method="delete"> <result name="book" type="redirect">/book.jsp</result> </action> <action name="edit_book" class="com.action.BookAction" method="bookEdit"> <result name="book_edit" type="redirect">/book_add.jsp</result> </action> <action name="book_add" class="com.action.BookAction" method="bookAdd"> <result name="book_add" type="redirect">/book_add.jsp</result> </action> <!--登录相关 --> <action name="login" class="com.action.LoginAction" method="login"> <result name="login" type="redirect">/login.jsp</result> <!-- 错误可忽略 --> <result name="main" type="redirect">/main.action</result> </action> <action name="loginOut" class="com.action.LoginAction" method="loginOut"> <result name="loginOut" type="redirect">/login.jsp</result> </action> <action name="main" class="com.action.LoginAction" method="main"> <result name="main">/main.jsp</result> <result name="login">/login.jsp</result> </action> </package> </struts>
book_add.jsp>>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib uri="/struts-tags" prefix="s" %> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>图书修改新增页面</title> <link rel="stylesheet" type="text/css" href="<%=basePath%>static/layui/css/layui.css"> <script src="<%=basePath%>static/layui/layui.js" charset="utf-8"></script> </head> <body> <h1>书详情页</h1> <div class="layui-container"> <div class="layui-row"> <form class="layui-form" action="add_book.action" method="post"> <input name="book.id" type="hidden" value=‘<s:property value="#session.bo.id"/>‘/> <div class="layui-form" lay-filter="layuiadmin-form-useradmin" id="layuiadmin-form-useradmin" style="padding: 20px 0 0 0;"> <div class="layui-form-item"> <label class="layui-form-label">书名*</label> <div class="layui-input-inline"> <input type="text" name="book.name" lay-verify="required" placeholder="请输入用户名" autocomplete="off" class="layui-input" value=‘<s:property value="#session.bo.name"/>‘> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">作者*</label> <div class="layui-input-inline"> <input type="text" name="book.author" lay-verify="required" placeholder="请输入作者名" autocomplete="off" class="layui-input" value=‘<s:property value="#session.bo.author"/>‘> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">出版社*</label> <div class="layui-input-inline"> <input type="text" name="book.publisher" lay-verify="required" placeholder="请输入出版社" autocomplete="off" class="layui-input" value=‘<s:property value="#session.bo.publisher"/>‘> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">所属类别*</label> <div class="layui-input-inline"> <input type="text" name="book.category" lay-verify="required" placeholder="请输入类别" autocomplete="off" class="layui-input" value=‘<s:property value="#session.bo.category"/>‘> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">是否可借</label> <div class="layui-input-block"> <input type="radio" name="book.state" value="1" title="可借" <s:if test="#session.bo==null||#session.bo.state==1">checked</s:if>> <input type="radio" name="book.state" value="0" title="不可借" <s:if test="#session.bo.state!=1">checked</s:if>> </div> </div> <div class="layui-form-item"> <div class="layui-input-block"> <button type="submit" class="layui-btn" lay-submit lay-filter="formDemo">立即提交</button> <button type="reset" class="layui-btn layui-btn-primary">重置</button> </div> </div> </form> </div> </div> <script> layui.use(‘form‘,function() var form = layui.form; //刷新界面 所有元素 form.render() ); </script> </body> </html>
borrow.jsp>>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib uri="/struts-tags" prefix="s" %> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>借书</title> </head> <body class="layui-layout-body"> <h1>借书</h1> <div class="layui-container"> <form action="borrowQuery.action" method="post"> <div class="layui-form-item"> <label class="layui-form-label">请输入书名</label> <div class="layui-input-block layui-col-md5"> <input type="text" name="name" required="true" lay-verify="required" placeholder="请输入书名" autocomplete="off" class="layui-input"> </div> </div> <button type="submit" class="layui-btn layui-col-md3 layui-col-md-offset3">查询</button> </form> <s:if test="#session.book!=null&&#session.book.id"> <table class="layui-table" style="margin-top:30px"> <thead> <tr> <th>ID</th> <th>书名</th> <th>作者</th> <th>出版社</th> <th>类别</th> <th>是否可借</th> </tr> </thead> <tbody> <tr> <td><s:property value="#session.book.id" /></td> <td><s:property value="#session.book.name" /></td> <td><s:property value="#session.book.author" /></td> <td><s:property value="#session.book.publisher" /></td> <td><s:property value="#session.book.category" /></td> <td> <s:if test="#session.book.state==1">可借</s:if> <s:if test="#session.book.state!=1">不可借</s:if> </td> </tr> </tbody> </table> <a onClick="layer.msg(‘当前书已被借走!‘)" href="<s:if test="#session.book.state!=1">javascript:volid(0);</s:if><s:if test="#session.book.state==1">borrowBook.action?id=<s:property value="#session.book.id"/></s:if>" class="layui-btn layui-btn-normal layui-col-md3 layui-col-md-offset3 <s:if test="#session.book.state!=1">layui-btn-disabled</s:if>">确认借书</a> </s:if> </div> <script> </script> </body> </html>
login.jsp>>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib uri="/struts-tags" prefix="s" %> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>登录</title> </head> <body> <div class="layadmin-user-login-main" style="margin-top:100px"> <div class="layadmin-user-login-box layadmin-user-login-header"> <h2>图书馆管理系统</h2> <p>图书馆后台管理系统</p> </div> <div class="layadmin-user-login-box layadmin-user-login-body layui-form"> <form action="login.action" method="post"> <div class="layui-form-item"> <label class="layadmin-user-login-icon layui-icon layui-icon-username" for="LAY-user-login-username"></label> <input type="text" name="admin.name" value="admin" id="LAY-user-login-username" lay-verify="required" placeholder="用户名" class="layui-input"> </div> <div class="layui-form-item"> <label class="layadmin-user-login-icon layui-icon layui-icon-password" for="LAY-user-login-password"></label> <input type="password" name="admin.password" value="123" id="LAY-user-login-password" lay-verify="required" placeholder="密码" class="layui-input"> </div> <div class="layui-form-item"> <button class="layui-btn layui-btn-fluid" lay-submit="" lay-filter="LAY-user-login-submit">登 入</button> </div> </form> </div> </div> </body> </html>
main.jsp>>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib uri="/struts-tags" prefix="s" %> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>书列表</title> </head> <body> <h1>书列表</h1> <div style="margin: 10px;"> <a href="book_add.action" target="main" class="layui-btn layuiadmin-btn-useradmin" data-type="add">添加图书</a> </div> <table class="layui-table"> <thead> <tr> <th>ID</th> <th>书名</th> <th>作者</th> <th>出版社</th> <th>类别</th> <th>是否可借</th> <th>操作</th> </tr> </thead> <tbody> <s:iterator value="#session.b" var="i"> <tr> <td><s:property value="#i.id" /></td> <td><s:property value="#i.name" /></td> <td><s:property value="#i.author" /></td> <td><s:property value="#i.publisher" /></td> <td><s:property value="#i.category" /></td> <td> <s:if test="#i.state==1">可借</s:if> <s:if test="#i.state!=1">不可借</s:if> </td> <td> <a href="edit_book.action?id=<s:property value=‘#i.id‘/>" class="layui-btn layui-btn-xs" lay-event="edit">编辑</a> <a href="delete_book.action?id=<s:property value=‘#i.id‘/>" class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a> </td> </tr> </s:iterator> </tbody> </table> </body> </html>
web.xml
<filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>*.action</url-pattern> <url-pattern>*.jsp</url-pattern> </filter-mapping>
完!!
以上是关于图书管理系统 Struts+hibernate的主要内容,如果未能解决你的问题,请参考以下文章
通过sping3 +Hibernate4+StrutsMVC实现 考试管理系统 逻辑 一 --Struts配置
Eclipse下面的Maven管理的SSH框架整合(Struts,Spring,Hibernate)
myeclipse搭建SSH(Struts+spring+hibernate)由maven管理
JavaWeb学习入门之——图书馆管理系统开发(Hibernate学习1)