2013年10月25日 星期五

java-database 5 level (over 10 file ) struts2


(5) View (jsp,structs.xml,*Action.java)
.

  1. 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">
  2. 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;
    }
    }
    )
  3. struts.xml
    <action name ="bookInput" class="com.ProjectName.action.BookInputAction">
    <result name="success">/bookInput.jsp</result>
    <result name="input">/bookInput.jsp</result>
    </action>
  4. 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;
    }
    }
  5. struts.xml
    <action name ="showAllBook" class="com.ProjectName.action.ShowAllBookAction">
    <result name="success">/showAllBook.jsp</result>
    </action>
  6. \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)
.

  1. src\com\ProjectName\service\BookService.java
    public interface BookService {
    public boolean inputBook (Book book);
    public List<Book> showAllBook()
    }
  2. 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();
    }
    }
  3. src\com\ProjectName\service\BookServiceFactory.java
    public class BookServiceFactory{
    public static BookService getBookServiceInstance(){
    return new BookServiceImpl();
    }
    }
.
(3) DAO (DAOInterface: save, find, list)
  1. src\com\ProjectName\dao\BookDAO.java
    public interface BookDAO{
    public void saveBook (Book book);
    public Book findByBookNo(String bookNo);
    public List<Book> findAllBook();
    }
  2. 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;
    }

    }
  3. src\com\ProjectName\dao\BookDAOFactory.java
    public class BookDAOfactory {
    public static BookDAO getBookDAOInstance() {
    return new BookDAOImpl();
    }
    }



(2) Hibernate (xml,table Class)
.

  1. src\com\ProjectName\po\Book.java
    public class Book {
    private int bookId;
    private String bookName;
    private String booNo;
    private double bookPrice
    }
  2. 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)
.

  1. 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)
    )

沒有留言:

張貼留言