【发布时间】:2014-11-27 18:51:51
【问题描述】:
我正在用java 创建一个portlet。我已经建立了一个班级学生。我有一个数据库,我想做 CRUD 操作。我只做了 read 和 add 方法。有人可以帮我更新和删除吗?我不知道如何获取学生的 ID,所以我更新了该记录,或者我删除了它。
@Entity
@Table(name="STUDENT")
public class Student extends base.persistence.Entity {
private String firstName;
private int age;
private Date birthDate;
private String gender;
private boolean isfreshman;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Date getBirthDate() {
return birthDate;
}
public void setBirthDate(Date birthDate) {
this.birthDate = birthDate;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public boolean isIsfreshman() {
return isfreshman;
}
public void setIsfreshman(boolean isfreshman) {
this.isfreshman = isfreshman;
}
@Id
@Override
public Long getId() {
return id;
}
@Override
public void setId(Long id) {
this.id = id;
}
@Override
public Date getDateCreated() {
return dateCreated;
}
@Override
public void setDateCreated(Date dateCreated) {
this.dateCreated = dateCreated;
}
@Override
public Date getDateUpdated() {
return dateUpdated;
}
@Override
public void setDateUpdated(Date dateUpdated) {
this.dateUpdated = dateUpdated;
}
@Override
public boolean isDeleted() {
return deleted;
}
@Override
public void setDeleted(boolean deleted) {
this.deleted= deleted;
}
}
public class StudentMVCPortlet extends MVCPortlet{
@Override
public void doView(RenderRequest renderRequest, RenderResponse renderResponse) throws IOException, PortletException {
List<Student> students = EntityUtil.getAll(Student.class);
renderRequest.setAttribute("students", students);
include("/list.jsp", renderRequest, renderResponse);
//super.doView(renderRequest, renderResponse);
}
/*@Override
public void processAction(ActionRequest actionRequest, ActionResponse actionResponse) throws IOException, PortletException {
PortletPreferences preferences = actionRequest.getPreferences();
ThemeDisplay themeDisplay =
(ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY);
Student student = new Student();
student.setId(EntityUtil.generateNewId());
SessionMessages.add(actionRequest,"success");
super.processAction(actionRequest, actionResponse);
}*/
@ProcessAction(name="addStudent")
public void addStudent(ActionRequest actionRequest, ActionResponse actionResponse) throws IOException, PortletException {
Student s = new Student();
s.setFirstName(ParamUtil.getString(actionRequest, "firstName"));
s.setAge(ParamUtil.getInteger(actionRequest, "age"));
s.setGender(ParamUtil.getString(actionRequest, "gender"));
s.setBirthDate(ParamUtil.getDate(actionRequest,"dateBirth", DateFormatter.getSlashDelimeterDMYdateFormat()));
s.setDateCreated(ParamUtil.getDate(actionRequest,"dateCreated",DateFormatter.getSlashDelimeterDMYdateFormat()));
s.setDateUpdated(ParamUtil.getDate(actionRequest,"dateUpdated",DateFormatter.getSlashDelimeterDMYdateFormat()));
s.setIsfreshman(ParamUtil.getBoolean(actionRequest, "isfreshman"));
s.setDeleted(false);
EntityUtil.save(s);
}
@ProcessAction(name="getStudent")
public void getStudent(RenderRequest renderRequest, RenderResponse renderResponse) throws IOException, PortletException {
Student student = (Student) EntityUtil.getById(Student.class,(Long) renderRequest.getAttribute("id"));
renderRequest.setAttribute("student", student);
include("/edit.jsp", renderRequest, renderResponse);
//super.doView(renderRequest, renderResponse);
}
@ProcessAction(name="updateStudent")
public void updateStudent(ActionRequest actionRequest, ActionResponse actionResponse) throws IOException, PortletException{
Student student = (Student) EntityUtil.getById(Student.class, (Long) actionRequest.getAttribute("id"));
student.setFirstName(ParamUtil.getString(actionRequest, "firstName"));
student.setAge(ParamUtil.getInteger(actionRequest, "age"));
student.setGender(ParamUtil.getString(actionRequest, "gender"));
student.setBirthDate(ParamUtil.getDate(actionRequest,"dateBirth", DateFormatter.getSlashDelimeterDMYdateFormat()));
student.setDateCreated(ParamUtil.getDate(actionRequest,"dateCreated",DateFormatter.getSlashDelimeterDMYdateFormat()));
student.setDateUpdated(ParamUtil.getDate(actionRequest,"dateUpdated",DateFormatter.getSlashDelimeterDMYdateFormat()));
student.setIsfreshman(ParamUtil.getBoolean(actionRequest, "isfreshman"));
student.setDeleted(false);
EntityUtil.save(student);
}
}
【问题讨论】:
-
你在使用服务构建器吗?
-
不,我没有使用它。我正在使用休眠
-
你需要创建你的 Hibernate DAO 来与你的数据库进行交易。如果您使用与 liferay 相同的数据库,我建议您使用服务构建器。它将为您创建模型和服务。
-
我正在使用另一个数据库,我必须使用休眠。
-
你的堆栈跟踪显示了什么?
标签: java model-view-controller liferay