├── .gitignore ├── src └── main │ ├── webapp │ ├── bookstore │ │ ├── fonts │ │ │ ├── fontawesome-webfont.ttf │ │ │ └── fontawesome-webfont.woff │ │ ├── css │ │ │ ├── bookstore.css │ │ │ ├── dataTables.responsive.css │ │ │ ├── dataTables.bootstrap.css │ │ │ └── font-awesome.min.css │ │ ├── js │ │ │ ├── bookstore.js │ │ │ ├── dataTables.bootstrap.min.js │ │ │ ├── order.js │ │ │ ├── orderitem.js │ │ │ ├── user.js │ │ │ ├── book.js │ │ │ ├── bootbox.min.js │ │ │ └── bootstrap.min.js │ │ ├── sql │ │ │ └── sql.sql │ │ └── jsp │ │ │ ├── user.jsp │ │ │ ├── book.jsp │ │ │ ├── order.jsp │ │ │ └── orderitem.jsp │ ├── index.jsp │ └── WEB-INF │ │ └── web.xml │ ├── java │ ├── dao │ │ ├── BookDao.java │ │ ├── UserDao.java │ │ ├── OrderDao.java │ │ ├── OrderitemDao.java │ │ └── impl │ │ │ ├── BookDaoImpl.java │ │ │ ├── UserDaoImpl.java │ │ │ ├── OrderDaoImpl.java │ │ │ └── OrderitemDaoImpl.java │ ├── action │ │ ├── AllBooksAction.java │ │ ├── AllUsersAction.java │ │ ├── DeleteBookAction.java │ │ ├── DeleteUserAction.java │ │ ├── DeleteOrderAction.java │ │ ├── AllOrdersAction.java │ │ ├── DeleteOrderitemAction.java │ │ ├── AllOrderitemsAction.java │ │ ├── AddOrderAction.java │ │ ├── BaseAction.java │ │ ├── AddUserAction.java │ │ ├── AddOrderitemAction.java │ │ ├── UpdateOrderAction.java │ │ ├── UpdateUserAction.java │ │ ├── UpdateOrderitemAction.java │ │ ├── AddBookAction.java │ │ └── UpdateBookAction.java │ ├── model │ │ ├── Orderitem.hbm.xml │ │ ├── User.hbm.xml │ │ ├── Order.hbm.xml │ │ ├── Book.hbm.xml │ │ ├── User.java │ │ ├── Order.java │ │ ├── Orderitem.java │ │ └── Book.java │ └── service │ │ ├── AppService.java │ │ └── impl │ │ └── AppServiceImpl.java │ └── resources │ ├── struts.xml │ └── applicationContext.xml ├── README.md └── pom.xml /.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | 3 | .settings 4 | .classpath 5 | *.class 6 | .project -------------------------------------------------------------------------------- /src/main/webapp/bookstore/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeniYuting/BookStore/HEAD/src/main/webapp/bookstore/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /src/main/webapp/bookstore/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeniYuting/BookStore/HEAD/src/main/webapp/bookstore/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /src/main/webapp/index.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=utf-8" 2 | pageEncoding="utf-8"%> 3 | 4 | 5 | 6 | BookStore 7 | 8 | <% 9 | response.sendRedirect("allUsersPro"); 10 | %> 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/main/java/dao/BookDao.java: -------------------------------------------------------------------------------- 1 | package dao; 2 | 3 | import java.util.List; 4 | 5 | import model.Book; 6 | 7 | public interface BookDao { 8 | 9 | public Integer save(Book book); 10 | 11 | public void delete(Book book); 12 | 13 | public void update(Book book); 14 | 15 | public Book getBookById(int id); 16 | 17 | public List getAllBooks(); 18 | 19 | } -------------------------------------------------------------------------------- /src/main/java/dao/UserDao.java: -------------------------------------------------------------------------------- 1 | package dao; 2 | 3 | import java.util.List; 4 | 5 | import model.User; 6 | 7 | public interface UserDao { 8 | 9 | public Integer save(User user); 10 | 11 | public void delete(User user); 12 | 13 | public void update(User user); 14 | 15 | public User getUserById(int id); 16 | 17 | public List getAllUsers(); 18 | 19 | } -------------------------------------------------------------------------------- /src/main/java/dao/OrderDao.java: -------------------------------------------------------------------------------- 1 | package dao; 2 | 3 | import java.util.List; 4 | 5 | import model.Order; 6 | 7 | public interface OrderDao { 8 | 9 | public Integer save(Order order); 10 | 11 | public void delete(Order order); 12 | 13 | public void update(Order order); 14 | 15 | public Order getOrderById(int id); 16 | 17 | public List getAllOrders(); 18 | 19 | } -------------------------------------------------------------------------------- /src/main/java/dao/OrderitemDao.java: -------------------------------------------------------------------------------- 1 | package dao; 2 | 3 | import java.util.List; 4 | 5 | import model.Orderitem; 6 | 7 | public interface OrderitemDao { 8 | 9 | public Integer save(Orderitem orderitem); 10 | 11 | public void delete(Orderitem orderitem); 12 | 13 | public void update(Orderitem orderitem); 14 | 15 | public Orderitem getOrderitemById(int id); 16 | 17 | public List getAllOrderitems(); 18 | 19 | } -------------------------------------------------------------------------------- /src/main/java/action/AllBooksAction.java: -------------------------------------------------------------------------------- 1 | package action; 2 | 3 | import java.util.List; 4 | 5 | import model.Book; 6 | import service.AppService; 7 | 8 | public class AllBooksAction extends BaseAction { 9 | 10 | private static final long serialVersionUID = 1L; 11 | 12 | private AppService appService; 13 | 14 | public void setAppService(AppService appService) { 15 | this.appService = appService; 16 | } 17 | 18 | @Override 19 | public String execute() throws Exception { 20 | 21 | List books = appService.getAllBooks(); 22 | request().setAttribute("books", books); 23 | 24 | return SUCCESS; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/action/AllUsersAction.java: -------------------------------------------------------------------------------- 1 | package action; 2 | 3 | import java.util.List; 4 | 5 | import model.User; 6 | import service.AppService; 7 | 8 | public class AllUsersAction extends BaseAction { 9 | 10 | private static final long serialVersionUID = 1L; 11 | 12 | private AppService appService; 13 | 14 | public void setAppService(AppService appService) { 15 | this.appService = appService; 16 | } 17 | 18 | @Override 19 | public String execute() throws Exception { 20 | 21 | List users = appService.getAllUsers(); 22 | request().setAttribute("users", users); 23 | 24 | return SUCCESS; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/model/Orderitem.hbm.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # BookStore 2 | * SSH Framework Demo 3 | # Steps 4 | * File->Import->Git->Projects from Git->Next->Clone URI->[https://github.com/SeniYuting/BookStore](https://github.com/SeniYuting/BookStore)->User/Password 5 | * Right Click->Properties->Project Facets->Convert to faceted form 6 | 1. 左边Project Facet->选择Dynamic Web Module, Java, JavaScript 7 | 2. 右边Runtimes->选择Apache Tomcat v8.0 8 | 3. Apply->OK 9 | * Right Click->Configure->Convert to Maven Project 10 | * 若出现timeout问题,双击Tomcat v8.0 Servers->将启动时间限制放大,右边,选择timeouts->Start设置为1000 11 | * Right Click->Run as->Maven install->BUILD SUCCESS 12 | * Right Click->Run as->Run on Server 13 | * 访问[http://localhost:8080/BookStore/allBooksPro](http://localhost:8080/BookStore/allBooksPro) 14 | -------------------------------------------------------------------------------- /src/main/java/action/DeleteBookAction.java: -------------------------------------------------------------------------------- 1 | package action; 2 | 3 | import model.Book; 4 | import service.AppService; 5 | 6 | public class DeleteBookAction extends BaseAction { 7 | 8 | private static final long serialVersionUID = 1L; 9 | 10 | private int id; 11 | 12 | private AppService appService; 13 | 14 | public int getId() { 15 | return id; 16 | } 17 | 18 | public void setId(int id) { 19 | this.id = id; 20 | } 21 | 22 | public void setAppService(AppService appService) { 23 | this.appService = appService; 24 | } 25 | 26 | @Override 27 | public String execute() throws Exception { 28 | 29 | Book book = appService.getBookById(id); 30 | appService.deleteBook(book); 31 | 32 | return SUCCESS; 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/action/DeleteUserAction.java: -------------------------------------------------------------------------------- 1 | package action; 2 | 3 | import model.User; 4 | import service.AppService; 5 | 6 | public class DeleteUserAction extends BaseAction { 7 | 8 | private static final long serialVersionUID = 1L; 9 | 10 | private int id; 11 | 12 | private AppService appService; 13 | 14 | public int getId() { 15 | return id; 16 | } 17 | 18 | public void setId(int id) { 19 | this.id = id; 20 | } 21 | 22 | public void setAppService(AppService appService) { 23 | this.appService = appService; 24 | } 25 | 26 | @Override 27 | public String execute() throws Exception { 28 | 29 | User user = appService.getUserById(id); 30 | appService.deleteUser(user); 31 | 32 | return SUCCESS; 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/model/User.hbm.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/main/java/action/DeleteOrderAction.java: -------------------------------------------------------------------------------- 1 | package action; 2 | 3 | import model.Order; 4 | import service.AppService; 5 | 6 | public class DeleteOrderAction extends BaseAction { 7 | 8 | private static final long serialVersionUID = 1L; 9 | 10 | private int id; 11 | 12 | private AppService appService; 13 | 14 | public int getId() { 15 | return id; 16 | } 17 | 18 | public void setId(int id) { 19 | this.id = id; 20 | } 21 | 22 | public void setAppService(AppService appService) { 23 | this.appService = appService; 24 | } 25 | 26 | @Override 27 | public String execute() throws Exception { 28 | 29 | Order order = appService.getOrderById(id); 30 | appService.deleteOrder(order); 31 | 32 | return SUCCESS; 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/action/AllOrdersAction.java: -------------------------------------------------------------------------------- 1 | package action; 2 | 3 | import java.util.List; 4 | 5 | import model.Order; 6 | import model.User; 7 | import service.AppService; 8 | 9 | public class AllOrdersAction extends BaseAction { 10 | 11 | private static final long serialVersionUID = 1L; 12 | 13 | private AppService appService; 14 | 15 | public void setAppService(AppService appService) { 16 | this.appService = appService; 17 | } 18 | 19 | @Override 20 | public String execute() throws Exception { 21 | 22 | List orders = appService.getAllOrders(); 23 | request().setAttribute("orders", orders); 24 | 25 | List users = appService.getAllUsers(); 26 | request().setAttribute("users", users); 27 | 28 | return SUCCESS; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/model/Order.hbm.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /src/main/java/action/DeleteOrderitemAction.java: -------------------------------------------------------------------------------- 1 | package action; 2 | 3 | import model.Orderitem; 4 | import service.AppService; 5 | 6 | public class DeleteOrderitemAction extends BaseAction { 7 | 8 | private static final long serialVersionUID = 1L; 9 | 10 | private int id; 11 | 12 | private AppService appService; 13 | 14 | public int getId() { 15 | return id; 16 | } 17 | 18 | public void setId(int id) { 19 | this.id = id; 20 | } 21 | 22 | public void setAppService(AppService appService) { 23 | this.appService = appService; 24 | } 25 | 26 | @Override 27 | public String execute() throws Exception { 28 | 29 | Orderitem orderitem = appService.getOrderitemById(id); 30 | appService.deleteOrderitem(orderitem); 31 | 32 | return SUCCESS; 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/action/AllOrderitemsAction.java: -------------------------------------------------------------------------------- 1 | package action; 2 | 3 | import java.util.List; 4 | 5 | import model.Book; 6 | import model.Order; 7 | import model.Orderitem; 8 | import service.AppService; 9 | 10 | public class AllOrderitemsAction extends BaseAction { 11 | 12 | private static final long serialVersionUID = 1L; 13 | 14 | private AppService appService; 15 | 16 | public void setAppService(AppService appService) { 17 | this.appService = appService; 18 | } 19 | 20 | @Override 21 | public String execute() throws Exception { 22 | 23 | List orderitems = appService.getAllOrderitems(); 24 | request().setAttribute("orderitems", orderitems); 25 | 26 | List orders = appService.getAllOrders(); 27 | request().setAttribute("orders", orders); 28 | 29 | List books = appService.getAllBooks(); 30 | request().setAttribute("books", books); 31 | 32 | return SUCCESS; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/model/Book.hbm.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /src/main/webapp/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | contextConfigLocation 9 | classpath:applicationContext.xml 10 | 11 | 12 | 13 | org.springframework.web.context.ContextLoaderListener 14 | 15 | 16 | 17 | struts2 18 | org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter 19 | 20 | 21 | 22 | struts2 23 | /* 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /src/main/webapp/bookstore/css/bookstore.css: -------------------------------------------------------------------------------- 1 | body { 2 | background-color: #f8f8f8; 3 | } 4 | 5 | #wrapper { 6 | width: 100%; 7 | } 8 | 9 | #page-wrapper { 10 | padding: 0 15px; 11 | min-height: 568px; 12 | background-color: #fff; 13 | } 14 | 15 | @media ( min-width :768px) { 16 | #page-wrapper { 17 | position: inherit; 18 | margin: 0 0 0 250px; 19 | padding: 0 30px; 20 | border-left: 1px solid #e7e7e7; 21 | } 22 | } 23 | 24 | .sidebar .sidebar-nav.navbar-collapse { 25 | padding-right: 0; 26 | padding-left: 0; 27 | } 28 | 29 | .sidebar ul li { 30 | border-bottom: 1px solid #e7e7e7; 31 | } 32 | 33 | .sidebar ul li a.active { 34 | background-color: #eee; 35 | } 36 | 37 | @media ( min-width :768px) { 38 | .sidebar { 39 | z-index: 1; 40 | position: absolute; 41 | width: 250px; 42 | margin-top: 51px; 43 | } 44 | } 45 | 46 | .btn-primary.btn-outline { 47 | color: #428bca; 48 | } 49 | 50 | .panel { 51 | margin-right: 5px; 52 | } -------------------------------------------------------------------------------- /src/main/java/action/AddOrderAction.java: -------------------------------------------------------------------------------- 1 | package action; 2 | 3 | import java.sql.Date; 4 | 5 | import model.Order; 6 | import service.AppService; 7 | 8 | public class AddOrderAction extends BaseAction { 9 | 10 | private static final long serialVersionUID = 1L; 11 | 12 | private int userid; 13 | private Date date; 14 | 15 | private AppService appService; 16 | 17 | public int getUserid() { 18 | return userid; 19 | } 20 | 21 | public void setUserid(int userid) { 22 | this.userid = userid; 23 | } 24 | 25 | public Date getDate() { 26 | return date; 27 | } 28 | 29 | public void setDate(Date date) { 30 | this.date = date; 31 | } 32 | 33 | public void setAppService(AppService appService) { 34 | this.appService = appService; 35 | } 36 | 37 | @Override 38 | public String execute() throws Exception { 39 | 40 | Order order = new Order(userid, date); 41 | appService.addOrder(order); 42 | 43 | return SUCCESS; 44 | } 45 | 46 | } 47 | -------------------------------------------------------------------------------- /src/main/java/model/User.java: -------------------------------------------------------------------------------- 1 | package model; 2 | 3 | public class User { 4 | 5 | private int id; 6 | private String username; 7 | private String password; 8 | private String role; 9 | 10 | public User() { 11 | } 12 | 13 | public User(String username, String password, String role) { 14 | this.username = username; 15 | this.password = password; 16 | this.role = role; 17 | } 18 | 19 | public int getId() { 20 | return id; 21 | } 22 | 23 | public void setId(int id) { 24 | this.id = id; 25 | } 26 | 27 | public String getUsername() { 28 | return username; 29 | } 30 | 31 | public void setUsername(String username) { 32 | this.username = username; 33 | } 34 | 35 | public String getPassword() { 36 | return password; 37 | } 38 | 39 | public void setPassword(String password) { 40 | this.password = password; 41 | } 42 | 43 | public String getRole() { 44 | return role; 45 | } 46 | 47 | public void setRole(String role) { 48 | this.role = role; 49 | } 50 | 51 | } 52 | -------------------------------------------------------------------------------- /src/main/java/action/BaseAction.java: -------------------------------------------------------------------------------- 1 | package action; 2 | 3 | import javax.servlet.ServletContext; 4 | import javax.servlet.http.HttpServletRequest; 5 | import javax.servlet.http.HttpServletResponse; 6 | import javax.servlet.http.HttpSession; 7 | 8 | import org.apache.struts2.ServletActionContext; 9 | 10 | import com.opensymphony.xwork2.ActionSupport; 11 | 12 | public class BaseAction extends ActionSupport { 13 | 14 | private static final long serialVersionUID = 1L; 15 | 16 | public HttpServletRequest request() { 17 | return ServletActionContext.getRequest(); 18 | } 19 | 20 | public HttpSession session() { 21 | return ServletActionContext.getRequest().getSession(); 22 | } 23 | 24 | public ServletContext application() { 25 | return ServletActionContext.getServletContext(); 26 | } 27 | 28 | public HttpServletResponse response() { 29 | return ServletActionContext.getResponse(); 30 | } 31 | 32 | @Override 33 | public String execute() throws Exception { 34 | return null; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/model/Order.java: -------------------------------------------------------------------------------- 1 | package model; 2 | 3 | import java.sql.Date; 4 | import java.util.HashSet; 5 | import java.util.Set; 6 | 7 | public class Order { 8 | 9 | private int id; 10 | private int userid; 11 | private Date date; 12 | 13 | public Order() { 14 | } 15 | 16 | public Order(int userid, Date date) { 17 | this.userid = userid; 18 | this.date = date; 19 | } 20 | 21 | public int getId() { 22 | return id; 23 | } 24 | 25 | public void setId(int id) { 26 | this.id = id; 27 | } 28 | 29 | public int getUserid() { 30 | return userid; 31 | } 32 | 33 | public void setUserid(int userid) { 34 | this.userid = userid; 35 | } 36 | 37 | public Date getDate() { 38 | return date; 39 | } 40 | 41 | public void setDate(Date date) { 42 | this.date = date; 43 | } 44 | 45 | private Set orderitems = new HashSet(); 46 | 47 | public Set getOrderitems() { 48 | return orderitems; 49 | } 50 | 51 | public void setOrderitems(Set orderitems) { 52 | this.orderitems = orderitems; 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /src/main/java/dao/impl/BookDaoImpl.java: -------------------------------------------------------------------------------- 1 | package dao.impl; 2 | 3 | import java.util.List; 4 | 5 | import model.Book; 6 | 7 | import org.springframework.orm.hibernate3.support.HibernateDaoSupport; 8 | 9 | import dao.BookDao; 10 | 11 | public class BookDaoImpl extends HibernateDaoSupport implements BookDao { 12 | 13 | public Integer save(Book book) { 14 | return (Integer) getHibernateTemplate().save(book); 15 | } 16 | 17 | public void delete(Book book) { 18 | getHibernateTemplate().delete(book); 19 | } 20 | 21 | public void update(Book book) { 22 | getHibernateTemplate().merge(book); 23 | } 24 | 25 | public Book getBookById(int id) { 26 | @SuppressWarnings("unchecked") 27 | List books = (List) getHibernateTemplate().find( 28 | "from Book as b where b.id=?", id); 29 | Book book = books.size() > 0 ? books.get(0) : null; 30 | return book; 31 | } 32 | 33 | public List getAllBooks() { 34 | @SuppressWarnings("unchecked") 35 | List books = (List) getHibernateTemplate() 36 | .find("from Book"); 37 | return books; 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/dao/impl/UserDaoImpl.java: -------------------------------------------------------------------------------- 1 | package dao.impl; 2 | 3 | import java.util.List; 4 | 5 | import model.User; 6 | 7 | import org.springframework.orm.hibernate3.support.HibernateDaoSupport; 8 | 9 | import dao.UserDao; 10 | 11 | public class UserDaoImpl extends HibernateDaoSupport implements UserDao { 12 | 13 | public Integer save(User user) { 14 | return (Integer) getHibernateTemplate().save(user); 15 | } 16 | 17 | public void delete(User user) { 18 | getHibernateTemplate().delete(user); 19 | } 20 | 21 | public void update(User user) { 22 | getHibernateTemplate().merge(user); 23 | } 24 | 25 | public User getUserById(int id) { 26 | @SuppressWarnings("unchecked") 27 | List users = (List) getHibernateTemplate().find( 28 | "from User as u where u.id=?", id); 29 | User user = users.size() > 0 ? users.get(0) : null; 30 | return user; 31 | } 32 | 33 | public List getAllUsers() { 34 | @SuppressWarnings("unchecked") 35 | List users = (List) getHibernateTemplate() 36 | .find("from User"); 37 | return users; 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/dao/impl/OrderDaoImpl.java: -------------------------------------------------------------------------------- 1 | package dao.impl; 2 | 3 | import java.util.List; 4 | 5 | import model.Order; 6 | 7 | import org.springframework.orm.hibernate3.support.HibernateDaoSupport; 8 | 9 | import dao.OrderDao; 10 | 11 | public class OrderDaoImpl extends HibernateDaoSupport implements OrderDao { 12 | 13 | public Integer save(Order order) { 14 | return (Integer) getHibernateTemplate().save(order); 15 | } 16 | 17 | public void delete(Order order) { 18 | getHibernateTemplate().delete(order); 19 | } 20 | 21 | public void update(Order order) { 22 | getHibernateTemplate().merge(order); 23 | } 24 | 25 | public Order getOrderById(int id) { 26 | @SuppressWarnings("unchecked") 27 | List orders = (List) getHibernateTemplate().find( 28 | "from Order as o where o.id=?", id); 29 | Order order = orders.size() > 0 ? orders.get(0) : null; 30 | return order; 31 | } 32 | 33 | public List getAllOrders() { 34 | @SuppressWarnings("unchecked") 35 | List orders = (List) getHibernateTemplate().find( 36 | "from Order"); 37 | return orders; 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/action/AddUserAction.java: -------------------------------------------------------------------------------- 1 | package action; 2 | 3 | import model.User; 4 | import service.AppService; 5 | 6 | public class AddUserAction extends BaseAction { 7 | 8 | private static final long serialVersionUID = 1L; 9 | 10 | private String username; 11 | private String password; 12 | private String role; 13 | 14 | private AppService appService; 15 | 16 | public String getUsername() { 17 | return username; 18 | } 19 | 20 | public void setUsername(String username) { 21 | this.username = username; 22 | } 23 | 24 | public String getPassword() { 25 | return password; 26 | } 27 | 28 | public void setPassword(String password) { 29 | this.password = password; 30 | } 31 | 32 | public String getRole() { 33 | return role; 34 | } 35 | 36 | public void setRole(String role) { 37 | this.role = role; 38 | } 39 | 40 | public void setAppService(AppService appService) { 41 | this.appService = appService; 42 | } 43 | 44 | @Override 45 | public String execute() throws Exception { 46 | 47 | User user = new User(username, password, role); 48 | appService.addUser(user); 49 | 50 | return SUCCESS; 51 | } 52 | 53 | } 54 | -------------------------------------------------------------------------------- /src/main/java/model/Orderitem.java: -------------------------------------------------------------------------------- 1 | package model; 2 | 3 | public class Orderitem { 4 | 5 | private int id; 6 | private int orderid; 7 | private int bookid; 8 | private int amount; 9 | 10 | public Orderitem() { 11 | } 12 | 13 | public Orderitem(int orderid, int bookid, int amount) { 14 | this.orderid = orderid; 15 | this.bookid = bookid; 16 | this.amount = amount; 17 | } 18 | 19 | public int getId() { 20 | return id; 21 | } 22 | 23 | public void setId(int id) { 24 | this.id = id; 25 | } 26 | 27 | public int getOrderid() { 28 | return orderid; 29 | } 30 | 31 | public void setOrderid(int orderid) { 32 | this.orderid = orderid; 33 | } 34 | 35 | public int getBookid() { 36 | return bookid; 37 | } 38 | 39 | public void setBookid(int bookid) { 40 | this.bookid = bookid; 41 | } 42 | 43 | public int getAmount() { 44 | return amount; 45 | } 46 | 47 | public void setAmount(int amount) { 48 | this.amount = amount; 49 | } 50 | 51 | private Order order; 52 | 53 | public Order getOrder() { 54 | return order; 55 | } 56 | 57 | public void setOrder(Order order) { 58 | this.order = order; 59 | } 60 | 61 | } 62 | -------------------------------------------------------------------------------- /src/main/java/action/AddOrderitemAction.java: -------------------------------------------------------------------------------- 1 | package action; 2 | 3 | import model.Orderitem; 4 | import service.AppService; 5 | 6 | public class AddOrderitemAction extends BaseAction { 7 | 8 | private static final long serialVersionUID = 1L; 9 | 10 | private int orderid; 11 | private int bookid; 12 | private int amount; 13 | 14 | private AppService appService; 15 | 16 | public int getOrderid() { 17 | return orderid; 18 | } 19 | 20 | public void setOrderid(int orderid) { 21 | this.orderid = orderid; 22 | } 23 | 24 | public int getBookid() { 25 | return bookid; 26 | } 27 | 28 | public void setBookid(int bookid) { 29 | this.bookid = bookid; 30 | } 31 | 32 | public int getAmount() { 33 | return amount; 34 | } 35 | 36 | public void setAmount(int amount) { 37 | this.amount = amount; 38 | } 39 | 40 | public void setAppService(AppService appService) { 41 | this.appService = appService; 42 | } 43 | 44 | @Override 45 | public String execute() throws Exception { 46 | 47 | Orderitem orderitem = new Orderitem(orderid, bookid, amount); 48 | appService.addOrderitem(orderitem); 49 | 50 | return SUCCESS; 51 | } 52 | 53 | } 54 | -------------------------------------------------------------------------------- /src/main/java/action/UpdateOrderAction.java: -------------------------------------------------------------------------------- 1 | package action; 2 | 3 | import java.sql.Date; 4 | 5 | import model.Order; 6 | import service.AppService; 7 | 8 | public class UpdateOrderAction extends BaseAction { 9 | 10 | private static final long serialVersionUID = 1L; 11 | 12 | private int id; 13 | private int userid; 14 | private Date date; 15 | 16 | private AppService appService; 17 | 18 | public int getId() { 19 | return id; 20 | } 21 | 22 | public void setId(int id) { 23 | this.id = id; 24 | } 25 | 26 | public int getUserid() { 27 | return userid; 28 | } 29 | 30 | public void setUserid(int userid) { 31 | this.userid = userid; 32 | } 33 | 34 | public Date getDate() { 35 | return date; 36 | } 37 | 38 | public void setDate(Date date) { 39 | this.date = date; 40 | } 41 | 42 | public void setAppService(AppService appService) { 43 | this.appService = appService; 44 | } 45 | 46 | @Override 47 | public String execute() throws Exception { 48 | 49 | Order order = appService.getOrderById(id); 50 | order.setUserid(userid); 51 | order.setDate(date); 52 | appService.updateOrder(order); 53 | 54 | return SUCCESS; 55 | } 56 | 57 | } 58 | -------------------------------------------------------------------------------- /src/main/webapp/bookstore/js/bookstore.js: -------------------------------------------------------------------------------- 1 | 2 | // Sets the min-height of #page-wrapper to window size 3 | $(function() { 4 | $(window).bind("load resize", function() { 5 | topOffset = 50; 6 | width = (this.window.innerWidth > 0) ? this.window.innerWidth : this.screen.width; 7 | if (width < 768) { 8 | $('div.navbar-collapse').addClass('collapse'); 9 | topOffset = 100; // 2-row-menu 10 | } else { 11 | $('div.navbar-collapse').removeClass('collapse'); 12 | } 13 | 14 | height = ((this.window.innerHeight > 0) ? this.window.innerHeight : this.screen.height) - 1; 15 | height = height - topOffset; 16 | if (height < 1) height = 1; 17 | if (height > topOffset) { 18 | $("#page-wrapper").css("min-height", (height) + "px"); 19 | } 20 | }); 21 | 22 | var url = window.location; 23 | var element = $('ul.nav a').filter(function() { 24 | return this.href == url || url.href.indexOf(this.href) == 0; 25 | }).addClass('active').parent().parent().addClass('in').parent(); 26 | if (element.is('li')) { 27 | element.addClass('active'); 28 | } 29 | }); 30 | -------------------------------------------------------------------------------- /src/main/java/dao/impl/OrderitemDaoImpl.java: -------------------------------------------------------------------------------- 1 | package dao.impl; 2 | 3 | import java.util.List; 4 | 5 | import model.Orderitem; 6 | 7 | import org.springframework.orm.hibernate3.support.HibernateDaoSupport; 8 | 9 | import dao.OrderitemDao; 10 | 11 | public class OrderitemDaoImpl extends HibernateDaoSupport implements 12 | OrderitemDao { 13 | 14 | public Integer save(Orderitem orderitem) { 15 | return (Integer) getHibernateTemplate().save(orderitem); 16 | } 17 | 18 | public void delete(Orderitem orderitem) { 19 | getHibernateTemplate().delete(orderitem); 20 | } 21 | 22 | public void update(Orderitem orderitem) { 23 | getHibernateTemplate().merge(orderitem); 24 | } 25 | 26 | public Orderitem getOrderitemById(int id) { 27 | @SuppressWarnings("unchecked") 28 | List orderitems = (List) getHibernateTemplate() 29 | .find("from Orderitem as oi where oi.id=?", id); 30 | Orderitem orderitem = orderitems.size() > 0 ? orderitems.get(0) : null; 31 | return orderitem; 32 | } 33 | 34 | public List getAllOrderitems() { 35 | @SuppressWarnings("unchecked") 36 | List orderitems = (List) getHibernateTemplate() 37 | .find("from Orderitem"); 38 | return orderitems; 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /src/main/java/action/UpdateUserAction.java: -------------------------------------------------------------------------------- 1 | package action; 2 | 3 | import model.User; 4 | import service.AppService; 5 | 6 | public class UpdateUserAction extends BaseAction { 7 | 8 | private static final long serialVersionUID = 1L; 9 | 10 | private int id; 11 | private String username; 12 | private String password; 13 | private String role; 14 | 15 | private AppService appService; 16 | 17 | public int getId() { 18 | return id; 19 | } 20 | 21 | public void setId(int id) { 22 | this.id = id; 23 | } 24 | 25 | public String getUsername() { 26 | return username; 27 | } 28 | 29 | public void setUsername(String username) { 30 | this.username = username; 31 | } 32 | 33 | public String getPassword() { 34 | return password; 35 | } 36 | 37 | public void setPassword(String password) { 38 | this.password = password; 39 | } 40 | 41 | public String getRole() { 42 | return role; 43 | } 44 | 45 | public void setRole(String role) { 46 | this.role = role; 47 | } 48 | 49 | public void setAppService(AppService appService) { 50 | this.appService = appService; 51 | } 52 | 53 | @Override 54 | public String execute() throws Exception { 55 | 56 | User user = appService.getUserById(id); 57 | user.setUsername(username); 58 | user.setPassword(password); 59 | user.setRole(role); 60 | appService.updateUser(user); 61 | 62 | return SUCCESS; 63 | } 64 | 65 | } 66 | -------------------------------------------------------------------------------- /src/main/java/action/UpdateOrderitemAction.java: -------------------------------------------------------------------------------- 1 | package action; 2 | 3 | import model.Orderitem; 4 | import service.AppService; 5 | 6 | public class UpdateOrderitemAction extends BaseAction { 7 | 8 | private static final long serialVersionUID = 1L; 9 | 10 | private int id; 11 | private int orderid; 12 | private int bookid; 13 | private int amount; 14 | 15 | private AppService appService; 16 | 17 | public int getId() { 18 | return id; 19 | } 20 | 21 | public void setId(int id) { 22 | this.id = id; 23 | } 24 | 25 | public int getOrderid() { 26 | return orderid; 27 | } 28 | 29 | public void setOrderid(int orderid) { 30 | this.orderid = orderid; 31 | } 32 | 33 | public int getBookid() { 34 | return bookid; 35 | } 36 | 37 | public void setBookid(int bookid) { 38 | this.bookid = bookid; 39 | } 40 | 41 | public int getAmount() { 42 | return amount; 43 | } 44 | 45 | public void setAmount(int amount) { 46 | this.amount = amount; 47 | } 48 | 49 | public void setAppService(AppService appService) { 50 | this.appService = appService; 51 | } 52 | 53 | @Override 54 | public String execute() throws Exception { 55 | 56 | Orderitem orderitem = appService.getOrderitemById(id); 57 | orderitem.setOrderid(orderid); 58 | orderitem.setBookid(bookid); 59 | orderitem.setAmount(amount); 60 | appService.updateOrderitem(orderitem); 61 | 62 | return SUCCESS; 63 | } 64 | 65 | } 66 | -------------------------------------------------------------------------------- /src/main/java/model/Book.java: -------------------------------------------------------------------------------- 1 | package model; 2 | 3 | import java.sql.Date; 4 | 5 | public class Book { 6 | 7 | private int id; 8 | private String title; 9 | private String author; 10 | private double price; 11 | private String publisher; 12 | private Date date; 13 | 14 | public Book() { 15 | } 16 | 17 | public Book(String title, String author, double price, String publisher, 18 | Date date) { 19 | this.title = title; 20 | this.author = author; 21 | this.price = price; 22 | this.publisher = publisher; 23 | this.date = date; 24 | } 25 | 26 | public int getId() { 27 | return id; 28 | } 29 | 30 | public void setId(int id) { 31 | this.id = id; 32 | } 33 | 34 | public String getTitle() { 35 | return title; 36 | } 37 | 38 | public void setTitle(String title) { 39 | this.title = title; 40 | } 41 | 42 | public String getAuthor() { 43 | return author; 44 | } 45 | 46 | public void setAuthor(String author) { 47 | this.author = author; 48 | } 49 | 50 | public double getPrice() { 51 | return price; 52 | } 53 | 54 | public void setPrice(double price) { 55 | this.price = price; 56 | } 57 | 58 | public String getPublisher() { 59 | return publisher; 60 | } 61 | 62 | public void setPublisher(String publisher) { 63 | this.publisher = publisher; 64 | } 65 | 66 | public Date getDate() { 67 | return date; 68 | } 69 | 70 | public void setDate(Date date) { 71 | this.date = date; 72 | } 73 | 74 | } 75 | -------------------------------------------------------------------------------- /src/main/java/service/AppService.java: -------------------------------------------------------------------------------- 1 | package service; 2 | 3 | import java.util.List; 4 | 5 | import model.Book; 6 | import model.Order; 7 | import model.Orderitem; 8 | import model.User; 9 | 10 | /** 11 | * @author seniyuting 12 | * @version 1.0 13 | * 14 | */ 15 | public interface AppService { 16 | 17 | /** 18 | * book 19 | * 20 | */ 21 | public Integer addBook(Book book); 22 | 23 | public void deleteBook(Book book); 24 | 25 | public void updateBook(Book book); 26 | 27 | public Book getBookById(int id); 28 | 29 | public List getAllBooks(); 30 | 31 | /** 32 | * order 33 | * 34 | */ 35 | public Integer addOrder(Order order); 36 | 37 | public void deleteOrder(Order order); 38 | 39 | public void updateOrder(Order order); 40 | 41 | public Order getOrderById(int id); 42 | 43 | public List getAllOrders(); 44 | 45 | /** 46 | * order item 47 | * 48 | */ 49 | public Integer addOrderitem(Orderitem orderitem); 50 | 51 | public void deleteOrderitem(Orderitem orderitem); 52 | 53 | public void updateOrderitem(Orderitem orderitem); 54 | 55 | public Orderitem getOrderitemById(int id); 56 | 57 | public List getAllOrderitems(); 58 | 59 | /** 60 | * user 61 | * 62 | */ 63 | public Integer addUser(User user); 64 | 65 | public void deleteUser(User user); 66 | 67 | public void updateUser(User user); 68 | 69 | public User getUserById(int id); 70 | 71 | public List getAllUsers(); 72 | 73 | } 74 | -------------------------------------------------------------------------------- /src/main/java/action/AddBookAction.java: -------------------------------------------------------------------------------- 1 | package action; 2 | 3 | import java.sql.Date; 4 | 5 | import model.Book; 6 | import service.AppService; 7 | 8 | public class AddBookAction extends BaseAction { 9 | 10 | private static final long serialVersionUID = 1L; 11 | 12 | private String title; 13 | private String author; 14 | private double price; 15 | private String publisher; 16 | private Date date; 17 | 18 | private AppService appService; 19 | 20 | public String getTitle() { 21 | return title; 22 | } 23 | 24 | public void setTitle(String title) { 25 | this.title = title; 26 | } 27 | 28 | public String getAuthor() { 29 | return author; 30 | } 31 | 32 | public void setAuthor(String author) { 33 | this.author = author; 34 | } 35 | 36 | public double getPrice() { 37 | return price; 38 | } 39 | 40 | public void setPrice(double price) { 41 | this.price = price; 42 | } 43 | 44 | public String getPublisher() { 45 | return publisher; 46 | } 47 | 48 | public void setPublisher(String publisher) { 49 | this.publisher = publisher; 50 | } 51 | 52 | public Date getDate() { 53 | return date; 54 | } 55 | 56 | public void setDate(Date date) { 57 | this.date = date; 58 | } 59 | 60 | public void setAppService(AppService appService) { 61 | this.appService = appService; 62 | } 63 | 64 | @Override 65 | public String execute() throws Exception { 66 | 67 | Book book = new Book(title, author, price, publisher, date); 68 | appService.addBook(book); 69 | 70 | return SUCCESS; 71 | } 72 | 73 | } 74 | -------------------------------------------------------------------------------- /src/main/java/action/UpdateBookAction.java: -------------------------------------------------------------------------------- 1 | package action; 2 | 3 | import java.sql.Date; 4 | 5 | import model.Book; 6 | import service.AppService; 7 | 8 | public class UpdateBookAction extends BaseAction { 9 | 10 | private static final long serialVersionUID = 1L; 11 | 12 | private int id; 13 | private String title; 14 | private String author; 15 | private double price; 16 | private String publisher; 17 | private Date date; 18 | 19 | private AppService appService; 20 | 21 | public int getId() { 22 | return id; 23 | } 24 | 25 | public void setId(int id) { 26 | this.id = id; 27 | } 28 | 29 | public String getTitle() { 30 | return title; 31 | } 32 | 33 | public void setTitle(String title) { 34 | this.title = title; 35 | } 36 | 37 | public String getAuthor() { 38 | return author; 39 | } 40 | 41 | public void setAuthor(String author) { 42 | this.author = author; 43 | } 44 | 45 | public double getPrice() { 46 | return price; 47 | } 48 | 49 | public void setPrice(double price) { 50 | this.price = price; 51 | } 52 | 53 | public String getPublisher() { 54 | return publisher; 55 | } 56 | 57 | public void setPublisher(String publisher) { 58 | this.publisher = publisher; 59 | } 60 | 61 | public Date getDate() { 62 | return date; 63 | } 64 | 65 | public void setDate(Date date) { 66 | this.date = date; 67 | } 68 | 69 | public void setAppService(AppService appService) { 70 | this.appService = appService; 71 | } 72 | 73 | @Override 74 | public String execute() throws Exception { 75 | 76 | Book book = appService.getBookById(id); 77 | book.setTitle(title); 78 | book.setAuthor(author); 79 | book.setPrice(price); 80 | book.setPublisher(publisher); 81 | book.setDate(date); 82 | appService.updateBook(book); 83 | 84 | return SUCCESS; 85 | } 86 | 87 | } 88 | -------------------------------------------------------------------------------- /src/main/webapp/bookstore/js/dataTables.bootstrap.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | DataTables Bootstrap 3 integration 3 | ©2011-2014 SpryMedia Ltd - datatables.net/license 4 | */ 5 | (function(){var f=function(c,b){c.extend(!0,b.defaults,{dom:"<'row'<'col-sm-6'l><'col-sm-6'f>><'row'<'col-sm-12'tr>><'row'<'col-sm-6'i><'col-sm-6'p>>",renderer:"bootstrap"});c.extend(b.ext.classes,{sWrapper:"dataTables_wrapper form-inline dt-bootstrap",sFilterInput:"form-control input-sm",sLengthSelect:"form-control input-sm"});b.ext.renderer.pageButton.bootstrap=function(g,f,p,k,h,l){var q=new b.Api(g),r=g.oClasses,i=g.oLanguage.oPaginate,d,e,o=function(b,f){var j,m,n,a,k=function(a){a.preventDefault(); 6 | c(a.currentTarget).hasClass("disabled")||q.page(a.data.action).draw(!1)};j=0;for(m=f.length;j",{"class":r.sPageButton+" "+ 7 | e,"aria-controls":g.sTableId,tabindex:g.iTabIndex,id:0===p&&"string"===typeof a?g.sTableId+"_"+a:null}).append(c("",{href:"#"}).html(d)).appendTo(b),g.oApi._fnBindAction(n,{action:a},k))}};o(c(f).empty().html('