From do-not-reply at jboss.com Wed Oct 28 23:36:36 2009 Content-Type: multipart/mixed; boundary="===============1917775238417122072==" MIME-Version: 1.0 From: pepelara To: jboss-user at lists.jboss.org Subject: [jboss-user] [EJB 3.0 Users] - Simple hibernate web app Date: Wed, 28 Oct 2009 23:36:36 -0400 Message-ID: <9964106.1256787396231.JavaMail.jboss@nukes01.app.mwc.hst.phx2.redhat.com> --===============1917775238417122072== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hello, I am a newbe in Hibernate but I am learning quickly. But I have reached a p= oint that is taking me a lot of time. I have developed a pretty simple web. It is just two JSP, index.jsp that re= directs to user.jsp where I have all the code. This is user.jsp, | <%@page import=3D"com.examscam.dao.*,com.examscam.model.*, | com.examscam.util.*,org.hibernate.*;" contentType=3D"text/html;" %> | = | <%@ taglib prefix=3D"c" uri=3D"http://java.sun.com/jsp/jstl/core" %> | = | | | = | <% | HibernateUtil.beginTransaction(); | UserDAO userDAO =3D new HibernateUserDAO(); | java.util.List users =3D null; | String command =3D request.getParameter("command"); | if (command !=3D null) { | if (command.equals("Create")) { | userDAO.create(user); | } | if (command.equals("Update")) { | userDAO.update(user); | } | if (command.equals("edit")) { | user =3D userDAO.findByPrimaryKey(user.getId()); = | request.setAttribute("user", user); | } | if (command.equals("delete")) { | userDAO.delete(user); | request.setAttribute("user", null); | } | if (command.equals("Fuzzy Search")) { | users =3D userDAO.findByExample(user, true); | } | if (command.equals("Strict Search")) { | users =3D userDAO.findByExample(user, false); | } | if (command.equals("Clear")) { | request.setAttribute("user", null); | } | } | if (users =3D=3D null) { | users =3D userDAO.findAll(); | } | request.setAttribute("users", users); | HibernateUtil.commitTransaction(); | %> | = | | |
| | Id |
| Name |
| Password |
| Email |
| | | | | | = |
| | | | | | | | | | edit | delete | | | = |
|
|
| | | = The problem is that I am not building the web app correctly. For user.jsp I= import a jar, hibernatedaoaccess.jar, where are the classes and interfaces= I need, | package com.examscam.dao; | = | import java.util.List; | import com.examscam.model.User; | = | public interface UserDAO { | = | public User create(User user); | public boolean update(User user) ; | public boolean delete(User user) ; | public User findByPrimaryKey(Long primaryKey); | public List findByExample(User user, boolean fuzzy); | public List findAll(); | = | } | = | package com.examscam.model; | = | import javax.persistence.Entity; | import javax.persistence.GeneratedValue; | import javax.persistence.Id; | import javax.persistence.Column; | import javax.persistence.Table; | import javax.persistence.Basic; | import javax.persistence.Temporal; | import javax.persistence.TemporalType; | import javax.persistence.Transient; | = | @Entity | @Table (name=3D"user", schema=3D"examscam") | public class User { | private Long id; | private String loginName; | private String password; | private String encryptedPassword; | private String emailAddress; | private Boolean verified; | private java.util.Date lastAccessTime; | private java.util.Calendar registrationDate; | = | @Transient | public String getEncryptedPassword() { | return encryptedPassword; | } | public void setEncryptedPassword(String ep) { | this.encryptedPassword =3D ep; | } | = | @Id | @GeneratedValue | @Column (name=3D"id") | public Long getId() { | return id; | } | public void setId(Long id) { | this.id =3D id; | } | = | @Column (name=3D"login_name") | public String getLoginName() { | return loginName; | } | public void setLoginName(String loginName) { | this.loginName =3D loginName; | } | = | @Column (name=3D"password", nullable=3Dfalse) | public String getPassword() { | return password; | } | public void setPassword(String password) { | this.password =3D password; | } | = | @Column (name=3D"emailAddress") | public String getEmailAddress() { | return emailAddress; | } | = | @Temporal(TemporalType.TIMESTAMP) | public java.util.Date getLastAccessTime() { | return lastAccessTime; | } | = | @Temporal(TemporalType.DATE) | public java.util.Calendar getRegistrationDate() { | return registrationDate; | } | = | @Basic | public Boolean isVerified() { | return verified; | } | = | public void setEmailAddress(String emailAddress) { | this.emailAddress =3D emailAddress; | } | = | public void setLastAccessTime | (java.util.Date lastAccessTime) { | this.lastAccessTime =3D lastAccessTime; | } | = | public void setRegistrationDate | (java.util.Calendar registrationDate){ | this.registrationDate =3D registrationDate; | } | = | public void setVerified(Boolean verified) { | this.verified =3D verified; | } | = | public String toString() { | return getId() + " : " + = | getLoginName() + " : " + = | getPassword() + " : " + = | getEmailAddress(); = | } | } | = | package com.examscam.dao; | = | import java.util.List; | import org.hibernate.Criteria; | import org.hibernate.Query; | import org.hibernate.Session; | import org.hibernate.criterion.Example; | import org.hibernate.criterion.MatchMode; | import com.examscam.model.User; | = | = | public class HibernateUserDAO extends ExamScamDAO implements UserDAO { | = | public User create(User user) { | // TODO Auto-generated method stub | if (user.getId() !=3D null && user.getId() !=3D 0) { | user =3D null; | } | else { | user.setLastAccessTime(new java.util.Date()); = | user.setRegistrationDate | (new java.util.GregorianCalendar()); | user.setVerified(false); | super.save(user); | } | return user; | } | = | public boolean update(User user) { | // TODO Auto-generated method stub | boolean successFlag =3D true; | = | try { | if (user.getId() =3D=3D null || user.getId() =3D=3D 0) { | successFlag =3D false; | }else { | super.save(user); | } | } | catch (Throwable th) { | successFlag =3D false; | } | = | return successFlag; | } | = | public boolean delete(User user) { | // TODO Auto-generated method stub | boolean successFlag =3D true; | = | try { | user.setPassword(" "); | super.delete(user); | } catch (Throwable th) { | successFlag =3D false; | } | = | return successFlag; | } | = | @SuppressWarnings("unchecked") | public List findAll() { | // TODO Auto-generated method stub | String queryString =3D "from User"; | List allUsers; | Query queryResult =3D = | this.getSession().createQuery(queryString); | allUsers =3D (List) queryResult.list(); | = | return allUsers; | = | } | = | @SuppressWarnings("unchecked") | public List findByExample(User user, boolean fuzzy) { | // TODO Auto-generated method stub | List users =3D null; | Session session =3D this.getSession(); | Criteria criteria =3D = | session.createCriteria(User.class); | Example example =3D Example.create(user); | if (fuzzy) { | example.enableLike(MatchMode.ANYWHERE); | example.ignoreCase(); | example.excludeZeroes(); | } | criteria.add(example); | List list =3D (List) criteria.list(); | users =3D list; | return users; | = | } | = | public User findByPrimaryKey(Long primaryKey) { | // TODO Auto-generated method stub | User user =3D (User) = | super.findByPrimaryKey(User.class, primaryKey); | = | return user; | = | } | = | } | = The question is depending on where I put the jar, running the web app again= st JBoss 4.2.2 GA, it does not find the hibernate.cfg.xml file or the inter= face UserDao as well. And I can not get it works. = Any idea? I am developing on Eclipse Ganymede RS1 that integrates the Data Base if ne= eded and the apps server. Thanking in advance, Jose View the original post : http://www.jboss.org/index.html?module=3Dbb&op=3Dv= iewtopic&p=3D4262842#4262842 Reply to the post : http://www.jboss.org/index.html?module=3Dbb&op=3Dpostin= g&mode=3Dreply&p=3D4262842 --===============1917775238417122072==--