首页 > 图灵资讯 > 技术篇>正文

EJB之实体类

2023-05-12 10:08:31

一ejb 服务端 基于ejb容器 ,jndi配置文件需要在客户端src下配置jndi *实体对象 Java代码 @Entity

public class Person implements Serializable {  public int getId() {  return id;  }  public void setId(int id) {  this.id = id;  }  public String getName() {  return name;  }  public void setName(String name) {  this.name = name;  }  @Id  @GeneratedValue  private int id;  private String name; } @Entity public class Person implements Serializable {  public int getId() {  return id;  }  public void setId(int id) {  this.id = id;  }  public String getName() {  return name;  }  public void setName(String name) {  this.name = name;  }  @Id  @GeneratedValue  private int id;  private String name; }

*实体管理接口 Java代码

import java.util.List; public interface PersonManager {  public void addPerson(Person person);  public Person getPerson(int id);  public Person getperson(int id);  public List<Person> getPersons();  public void updatePerson(Person person);  public void deletePerson(int id); } import java.util.List; public interface PersonManager {  public void addPerson(Person person);  public Person getPerson(int id);  public Person getperson(int id);  public List<Person> getPersons();  public void updatePerson(Person person);  public void deletePerson(int id); } *实现实体管理 Java代码 @Stateless @Remote @Local public class PersonImpl implements PersonManager {  @PersistenceContext(unitName="test")  private EntityManager entityManager;  public void addPerson(Person person) {  entityManager.persist(person);  //throw new RuntimeException("ddddddddddd");  }  public Person getPerson(int id) {  //相当于hibernate中的load,是懒加载的  Person p=entityManager.getReference(Person.class, id);  System.out.println(p.getName());  return p;  }  public Person getperson(int id){  ///相当于hibernate中的gete  Person p=entityManager.find(Person.class, id);  return p;  }  public List<Person> getPersons(){  return entityManager.createQuery(" from Person").getResultList();  }  public void updatePerson(Person person){  entityManager.merge(person);  }  public void deletePerson(int id){  entityManager.remove(getPerson(id));  } } @Stateless @Remote @Local public class PersonImpl implements PersonManager {  @PersistenceContext(unitName="test")  private EntityManager entityManager;  public void addPerson(Person person) {  entityManager.persist(person);  //throw new RuntimeException("ddddddddddd");  }  public Person getPerson(int id) {  //相当于hibernate中的load,是懒加载的  Person p=entityManager.getReference(Person.class, id);  System.out.println(p.getName());  return p;  }  public Person getperson(int id){  ///相当于hibernate中的gete  Person p=entityManager.find(Person.class, id);  return p;  }  public List<Person> getPersons(){  return entityManager.createQuery(" from Person").getResultList();  }  public void updatePerson(Person person){  entityManager.merge(person);  }  public void deletePerson(int id){  entityManager.remove(getPerson(id));  } } persistence.xml配置文件 Xml代码 <?xml version="1.0" encoding="UTF-8"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence"  xmlns:xsi="https://www.tulingxueyuan.cn/d/file/p/20230508/3fwbpw0bpzn"  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:/MySqlDS</jta-data-source>  <properties>  <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>  <property name="hibernate.show_sql" value="true"/>  <property name="hibernate.hbm2ddl.auto" value="update"/>  </properties>  </persistence-unit> </persistence> <?xml version="1.0" encoding="UTF-8"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence"  xmlns:xsi="https://www.tulingxueyuan.cn/d/file/p/20230508/3fwbpw0bpzn"  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:/MySqlDS</jta-data-source>  <properties>  <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>  <property name="hibernate.show_sql" value="true"/>  <property name="hibernate.hbm2ddl.auto" value="update"/>  </properties>  </persistence-unit> </persistence> 二客户端 Java代码 public class Client {  /**  * @param args  */  public static void main(String[] args) throws Exception {  InitialContext context =new InitialContext();  //UserTransaction um=(UserTransaction )context.lookup("UserTransaction");  //um.begin();  PersonManager pm=(PersonManager)context.lookup("PersonImpl/remote"); // Person p=new Person(); // p.setName("www"); // pm.addPerson(p);  //Person p=pm.getPerson(5);  //System.out.println(p.getName()); // Person p=pm.getperson2(5); // System.out.println(p.getName());  //System.out.println(pm.getPersons().size());  //um.commit(); // Person p=new Person(); // p.setId(5); // p.setName("xxxxxxxxxxxxx"); // // pm.updatePerson(p);  // pm.deletePerson(5);  } } public class Client {  /**  * @param args  */  public static void main(String[] args) throws Exception {  InitialContext context =new InitialContext();  //UserTransaction um=(UserTransaction )context.lookup("UserTransaction");  //um.begin();  PersonManager pm=(PersonManager)context.lookup("PersonImpl/remote"); // Person p=new Person(); // p.setName("www"); // pm.addPerson(p);  //Person p=pm.getPerson(5);  //System.out.println(p.getName()); // Person p=pm.getperson2(5); // System.out.println(p.getName());  //System.out.println(pm.getPersons().size());  //um.commit(); // Person p=new Person(); // p.setId(5); // p.setName("xxxxxxxxxxxxx"); // // pm.updatePerson(p);  // pm.deletePerson(5);  } }  三 jboss 配置数据源 jboss 安装目录D:\jboss-4.0.5.GA\server\default\deploy 下放入 mysql-ds.xml Xml代码 <?xml version="1.0" encoding="UTF-8"?xml version="1.0" encoding="UTF-8"?> <!-- $Id: mysql-ds.xml 41016 2006-02-07 14:23:00Z acoliver $ --> <!-- Datasource config for MySQL using 3.0.9 available from: http://www.mysql.com/downloads/api-jdbc-stable.html --> <datasources>  <local-tx-datasource>  <jndi-name>MySqlDS</jndi-name>  <connection-url>jdbc:mysql://localhost:3306/ejb</connection-url>  <driver-class>com.mysql.jdbc.Driver</driver-class>  <user-name>root</user-name>  <password>bjsxt</password>  <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>  <!-- should only be used on drivers after 3.22.1 with "ping" support  <valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLValidConnectionChecker</valid-connection-checker-class-name>  -->  <!-- sql to call when connection is created  <new-connection-sql>some arbitrary sql</new-connection-sql>  -->  <!-- sql to call on an existing pooled connection when it is obtained from pool - MySQLValidConnectionChecker is preferred for newer drivers  <check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>  -->  <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->  <metadata>  <type-mapping>mySQL</type-mapping>  </metadata>  </local-tx-datasource> </datasources>

上一篇 struts2分页实现
下一篇 java 使用 mysql-binlog-connector-java 同步Mysql数据

文章素材均来源于网络,如有侵权,请联系管理员删除。