实体bean(八)EntityManager
package com.persia.jpa.onetable; import java.io.Serializable; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table(name="Person") public class Person implements Serializable { private Integer id; private String name; private Short age; @Id @GeneratedValue public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } @Column(name="PersonName",nullable=false,length=32) public String getName() { return name; } public void setName(String name) { this.name = name; } @Column(nullable=false) public Short getAge() { return age; } public void setAge(Short age) { this.age = age; } }
package com.persia.entity.dao; import java.util.List; import javax.ejb.Remote; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.persistence.Query; import com.persia.jpa.onetable.Person; @Stateless @Remote({PersonDAO.class}) public class PersonDAOBean implements PersonDAO { @PersistenceContext protected EntityManager em; @Override public Person getPersonByID(int personid) { return em.find(Person.class, Integer.valueOf(personid)); } @Override public List getPersonList(int max, int whichpage) { // TODO Auto-generated method stub try{ int index=(whichpage-1)*max; Query query=em.createQuery("from Person p order by id asc"); List list=query.setMaxResults(max).setFirstResult(index).getResultList(); em.clear(); return list; }catch(Exception e){ e.printStackTrace(); return null; } } @Override public String getPersonNameByID(int personid) { Person p=em.find(Person.class,Integer.valueOf(personid)); return p.getName(); } @Override public boolean insertPerson(String name, short age) { try{ Person p=new Person(); p.setName(name); p.setAge(Short.valueOf(age)); em.persist(p); }catch(Exception e){ e.printStackTrace(); return false; } return true; } @Override public boolean updatePerson(Person person) { // TODO Auto-generated method stub try{ em.merge(person); }catch(Exception e){ e.printStackTrace(); return false; } return true; } }
JSP测试页面
<% Properties props=new Properties(); props.setProperty("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory"); props.setProperty("java.naming.provider.url","localhost:1099"); props.setProperty("java.naming.factory.url.pkgs","org.jboss.naming"); InitialContext ctx=new InitialContext(props); try{ PersonDAO persondao=(PersonDAO)ctx.lookup("PersonDAOBean/remote"); persondao.insertPerson("persia",(short)26); out.println(persondao.getPersonNameByID(1)); Person person=persondao.getPersonByID(1); person.setName("linda"); persondao.updatePerson(person); out.println("<br>=============分页显示================<br/>"); String index=request.getParameter("index"); if(index==null||"".equals(index.trim())) index="1"; int max=2; int whichpage=Integer.parseInt(index); List list=persondao.getPersonList(max,whichpage); if(list!=null){ Iterator it=list.iterator(); while(it.hasNext()){ Person p=(Person)it.next(); out.println("编号:"+p.getId()+"姓名:"+p.getName()+"<br>"); } } }catch(Exception e){ out.println(e.getMessage()); } %>