go4it

just do it

实体bean(八)EntityManager

image

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());
      }
       
       %>

posted on 2009-01-18 18:33  cxccbv  阅读(389)  评论(0)    收藏  举报

导航