JAVA服务端: package com.lovo.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 org.jboss.annotation.ejb.RemoteBinding; import com.lovo.entity.PersonEntityBean; @Stateless @Remote(PersonDAO.class) @RemoteBinding(jndiBinding="testEntity") public class ImpPersonDAO implements PersonDAO { @PersistenceContext(unitName="test") EntityManager em; public void insertPerson(PersonEntityBean person) { em.persist(person); } public PersonEntityBean getPersonByID(int personid) { return em.find(PersonEntityBean.class, personid); } public void mergePerson(PersonEntityBean person) { em.merge(person); } public List<PersonEntityBean> getPersonList() { Query query = em .createQuery("select o from PersonEntityBean o order by o.personid asc"); return (List<PersonEntityBean>) query.getResultList(); } public void deletePerson(int personid) { PersonEntityBean person = em.find(PersonEntityBean.class, personid); if (person != null) em.remove(person); } public void updateName(String newname, int personid) { PersonEntityBean person = em.find(PersonEntityBean.class, personid); if (person != null) person.setName(newname); } } package com.lovo.dao; import java.util.List; import com.lovo.entity.PersonEntityBean; public interface PersonDAO { public void insertPerson(PersonEntityBean person); public void updateName(String newname, int personid); public void mergePerson(PersonEntityBean person); public void deletePerson(int personid); public PersonEntityBean getPersonByID(int personid); public List<PersonEntityBean> getPersonList(); } package com.lovo.entity; import java.io.Serializable; import java.util.Date; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; @Entity @Table(name = "person") public class PersonEntityBean implements Serializable{ private Integer personid; private String name; private boolean sex; private Short age; private Date birthday; @Id @GeneratedValue(strategy=GenerationType.AUTO) public Integer getPersonid() { return personid; } public void setPersonid(Integer personid) { this.personid = personid; } @Column(nullable=false,length=32) public String getName() { return name; } public void setName(String name) { this.name = name; } @Column(nullable=false) public boolean isSex() { return sex; } public void setSex(boolean sex) { this.sex = sex; } @Column(nullable=false) public Short getAge() { return age; } public void setAge(Short age) { this.age = age; } @ Temporal(value=TemporalType.DATE) public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } } <?xml version="1.0"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0"> <persistence-unit name="test" transaction-type="JTA"> <jta-data-source>java:/DefaultMySqlDS</jta-data-source> <properties><!--下面属性只针对Jboss服务器--> <property name="hibernate.hbm2ddl.auto" value="update" /> <!-- 调整JDBC抓取数量的大小: Statement.setFetchSize() --> <property name="hibernate.jdbc.fetch_size" value="18" /> <!-- 调整JDBC批量更新数量--> <property name="hibernate.jdbc.batch_size" value="10" /> <!-- 显示最终执行的SQL --> <property name="hibernate.show_sql" value="true" /> <!-- 格式化显示的SQL --> <property name="hibernate.format_sql" value="true" /> </properties> </persistence-unit> </persistence> 客户端 package com.lovo.test; import java.util.Date; import java.util.Properties; import javax.naming.InitialContext; import javax.naming.NamingException; import com.lovo.dao.PersonDAO; import com.lovo.entity.PersonEntityBean; import com.lovo.session.stateful.MyRemoteInterface; public class TestMain { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Properties props = new Properties(); props.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory"); props.setProperty("java.naming.provider.url", "localhost:1099"); try { InitialContext ctx = new InitialContext(props); PersonDAO dao = (PersonDAO) ctx.lookup("testEntity"); PersonEntityBean person = new PersonEntityBean(); person.setName("阿杜"); person.setAge((short)28); person.setSex(true); person.setBirthday(new Date()); dao.insertPerson(person); } catch (NamingException e) { System.out.println(e.getMessage()); } } }