我想學習使用JSF和Hibernate的Web編程。我應該如何爲JSF + Hibernate應用程序中的簡單CRUD操作設計類?
我有一個表,其中有2列我的MySQL服務器調用MYTABLE:名字,姓氏
我也有被映射到這個表MyTable.java,它看起來像這樣:
// Listing 1
public class MyTable {
private String name;
private String surname;
public MyTable() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSurname() {
return surname;
}
public void setSurname(String surname) {
this.surname = surname;
}
}
這是通過休眠映射,因此該代碼(我已用於測試目的)成功地插入到數據的MyTable:
//Listing 2
Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
MyTable myTable = new MyTable();
myTable.setName("Name");
myTable.setSurname("Surname");
session.save(myTable);
session.getTransaction().commit();
而這正是我在我的index.xhtml形式如下:
// Listing 3
<h:form id="registirationForm" prependId="false">
<h:outputLabel for="name">Name:</h:outputLabel>
<h:inputText id="name"></h:inputText>
<h:outputLabel for="surname">Surname:</h:outputLabel>
<h:inputText id="surname"></h:inputText>
</h:form>
我的問題是:
我如何配合我的形式上面的代碼?
- 我應該使課堂MyTable的管理bean,並把一個叫saveRecord方法,並把上面的代碼在那裏?
- 它應該映射到其他類嗎?如果是的話應該叫什麼?我應該將當前MyTable.java的名稱更改爲MyTableDao.Java之類的名稱嗎?
那麼當用戶輸入一些名字和姓時,應該調用什麼方法?
我應該在哪裏放置清單2中的代碼?
我希望我的問題很清楚,謝謝你的幫助。
因此,例如,對於我的應用程序中的每個表,我是否應該有一個tableController.Java? – 2013-05-04 19:43:30
並非如此 - 每個控制器都對一個明確定義的任務負責。它可以使用來自單個表格,許多表格的數據,甚至可以不使用數據。例如'RegistrationController'可能需要訪問一個包含用戶(添加新用戶)的表,權限和資源(授予他某些資源的默認權限)等等。 – dratewka 2013-05-04 19:54:37
假設每個表都有DTO和DAO對象會更合理。 – dratewka 2013-05-04 19:55:31