(5) View (jsp,structs.xml,*Action.java)
.
- WebRoot\bookInput.jsp
<form action="bookInut.action" method="post">
<s:actionmessage/>
<input type = "text" name="bookName">
<input type = "text" name="bookNo">
<input type = "text" name="bookPrice">
<input type = "submit">
<input type = "reset">
<a href="showAllBook.action"> - src\com\ProjectName\action\BookInputAction.java
public class BookInutAction extends ActionSupport (
private String bookName;
private String bookNo;
private double bookPrice;
public String execute() throws Exception {
Book book=new Book();
book.setBookName(bookName);
book.setBookNo(bookNo);
book.setBookPrice(bookPrice);
BookService bookService=BookServiceFactory.getBookServiceInstance();
if (bookService.inputBook(book)){
this.addActionMessage("Logon Success");
return SUCESS;
} else {
this.addActionMessage("Logon Fail");
return INPUT;
}
}
) - struts.xml
<action name ="bookInput" class="com.ProjectName.action.BookInputAction">
<result name="success">/bookInput.jsp</result>
<result name="input">/bookInput.jsp</result>
</action> - src\com\ProjectName\action\ShowAllBookAction.java
public class ShowAllBookAction extneds ActionSupport {
public String execute() throws Exception {
BookService bookService =BookServiceFactory.getBookServiceInstance();
List<Book> bookList=bookService.showAllBook();
HttpServletRequest request=ServletActionContext.getRequest();
request.setAttribute("bookList",bookList);
return SUCCESS;
}
} - struts.xml
<action name ="showAllBook" class="com.ProjectName.action.ShowAllBookAction">
<result name="success">/showAllBook.jsp</result>
</action> - \WebRoot\showAllBook.jsp
<s:iterator value="#request.bookList" var="book">
<s:property value="#book.bookId"/>
<s:property value="#book.bookName"/>
<s:property value="#book.bookNo"/>
<s:property value="#book.bookPrice"/>
</s:iterator>
(4) Logical (*service.java)
.
- src\com\ProjectName\service\BookService.java
public interface BookService {
public boolean inputBook (Book book);
public List<Book> showAllBook()
} - src\com\ProjectName\service\BookServiceImpl.java
public class BookServiceImpl implements BookService {
private BookDAO bookDAO=BookDAOFactory.getBookDAOInstance();
public boolean inputBook(Book book) {
Book oldBook = bookDAO.findByBookNo(Book.getBookNo());
if (oldBook != null) {
return false
} else {
bookDAO.saveBook (book);
return true;
}
}
public List<Book> showAllBook() {
return bookDAO.findAllbook();
}
} - src\com\ProjectName\service\BookServiceFactory.java
public class BookServiceFactory{
public static BookService getBookServiceInstance(){
return new BookServiceImpl();
}
}
(3) DAO (DAOInterface: save, find, list)
- src\com\ProjectName\dao\BookDAO.java
public interface BookDAO{
public void saveBook (Book book);
public Book findByBookNo(String bookNo);
public List<Book> findAllBook();
} - src\com\ProjectName\dao\BookDAOImpl.java
public class BookDAOImpl implements BookDAO {
public List<Book> findAllBook(){
Session session=HibernateSessionFactory.getSession();
String hpl="from Book";
Query query=session.createQuery(hql);
List<Book> books=query.list();
HibernateSessionFactroy.closeSession();
return books;
}
public Book findByBookNo(String bookNo){
Session session=HibernateSessionFactory.getSession();
String hpl="from Book as book where book.bookNo=:bookNo";
Query query=session.createQuery(hql);
query.setString("bookNo",bookNo);
List<Book> books=query.list();
HibernateSessionFactroy.closeSession();
if(books.size()>0) {
return books.get(0);
} else {
return null;
}
}
public saveBook(Book book) {
Session session=HibernateSessionFactory.getSession();
Transaction transaction=session.begin Transaction();
session.save(book);
transaction.commit();
HibernateSessionFactroy.closeSession();
return books;
}
} - src\com\ProjectName\dao\BookDAOFactory.java
public class BookDAOfactory {
public static BookDAO getBookDAOInstance() {
return new BookDAOImpl();
}
}
(2) Hibernate (xml,table Class)
.
- src\com\ProjectName\po\Book.java
public class Book {
private int bookId;
private String bookName;
private String booNo;
private double bookPrice
} - Book.hbm.xml
<hibernate-mapping>
<class name="com.ProjectName.po.Book" table="book">
<id name="bookid">
<generator class="identity"></generator>
</id>
<jproperty name="bookName"></property>
<jproperty name="bookNo"></property>
<jproperty name="bookPrice"></property>
</hibernate-mapping>
(1) Database (create table)
.
- create table book (
bookid int(11) not null auto_increment,
bookName varchar(30) default NULL,
bookNo varchar(30) default NULL,
bookPrice double(5,2) default NULL,
PRIMARY KEY (bookId)
)
沒有留言:
張貼留言