`
ysen
  • 浏览: 123066 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ejb-jpa

    博客分类:
  • EJB
阅读更多

一ejb 服务端 基于ejb容器 ,客户端src下需要配置jndi配置文件

 

*实体对象

 

 

@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;
	
}

 

 

*实体管理接口

 

 

import java.util.List;

public interface PersonManager {
	public void addPerson(Person person);
	public Person getPerson(int id);
	public Person getPerson2(int id);
	public List<Person> getPersons();
	public void updatePerson(Person person);
	public void deletePerson(int 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 getPerson2(int id){
		//相当于hibernate中的get
		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 version="1.0" encoding="UTF-8"?>
<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:/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>

  

 

二客户端

 

 

 

 

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 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>

 

 

分享到:
评论

相关推荐

    EJB.JPA-数据库持久层开发实践详解

    EJB.JPA-数据库持久层开发实践详解,感兴趣的人可以阅读一次

    EJB+JPA数据库持久层开发实践详解PDF

    EJB(Enterprise JavaBeans)和JPA(Java Persistence API)是Java企业级开发中的核心组件,主要用于构建可扩展且可靠的后端系统。本实践详解主要围绕这两者在数据库持久层的开发应用,帮助开发者深入理解并掌握相关...

    Maven-EJB-JPA-JSF-Primefaces:用 Java 与 Maven、EJB、JPA、JSF 和 Primefaces 一起制作的示例项目

    Maven-EJB-JPA-JSF-Primefaces 用 Java 与 Maven、EJB、JPA、JSF 和 Primefaces 一起制作的示例项目。 我已经做了 5 年多的 Java Web 开发人员。 但是我只接触过像XSLT这样的较差的框架,它只读取Servlet发送的XML...

    EJB_JPA数据库持久层开发详解

    ### EJB_JPA数据库持久层开发详解 #### JPA与数据持久化技术 **数据持久化**是指将程序运行时的数据保存到永久存储设备中,以便在下次运行时能够读取和使用这些数据。在Java领域,有多种数据持久化技术,包括序列...

    EJB-JSF-JPA-MINA

    EJB处理核心业务逻辑,JSF负责用户界面,JPA处理数据持久化,而MINA则用于构建高效的网络通信层。结合使用,它们可以构建出复杂、可扩展且易于维护的系统。对于初学者来说,掌握这四者将极大地提升在Java EE领域的...

    <ejb-ql> 标记

    实际上,EJB-QL是JPQL的一个子集,因此,对EJB-QL的理解有助于掌握JPA的查询机制。 **最佳实践** 1. **保持查询简洁**:尽量避免过于复杂的查询,这可能会影响性能和可读性。 2. **使用命名查询**:预定义的命名...

    EJB-api.rar

    - EJB 3.0引入了Java Persistence API(JPA),用注解替代XML配置,简化了实体bean的管理。 4. **消息驱动bean**: - 消息驱动bean是响应JMS(Java Message Service)消息的bean,通常用于异步处理任务,提高系统...

    TP1-JSF2-EJB-JPA:TP1与米歇尔·布法(Michel Buffa)

    标题 "TP1-JSF2-EJB-JPA:TP1与米歇尔·布法(Michel Buffa)" 暗示这是一个与Java相关的技术实践项目,由米歇尔·布法(Michel Buffa)设计或参与。项目可能包含了使用JavaServer Faces (JSF) 2.0、Enterprise ...

    拍卖系统jsf+ejb+jpa

    在IT行业中,`JSF(JavaServer Faces)`、`EJB(Enterprise JavaBeans)`和`JPA(Java Persistence API)`是三个重要的Java技术,常用于构建企业级的应用系统,特别是拍卖系统这样的业务流程复杂的场景。这里我们将深入...

    JPA学习笔记-EJB-04JPA关联映射总结

    在EJB(Enterprise JavaBeans)框架中,JPA被广泛使用,提供了一种面向对象的方式来处理数据库交互。本篇笔记主要聚焦于JPA的关联映射,这是JPA中一个重要的概念,用于定义实体之间的关系。 关联映射允许我们将...

    JPA学习笔记-EJB-02JPA属性注解

    ### JPA学习笔记-EJB-02JPA属性注解 #### 一、引言 在上一篇文章中,我们简要介绍了Java Persistence API (JPA)的基础知识,包括它的基本部署和操作流程,从而让我们对JPA有了初步的认识。本文将继续深入探讨JPA的...

    ejb-3_0-fr-spec-ejbcore.pdf,ejb-3_0-fr-spec-persistence.pdf,ejb-3_0-fr-spec-simplified.pdf

    - 持久化API:Java Persistence API(JPA)是EJB 3.0的一部分,它提供了一种标准的方式来管理对象-关系映射(ORM)。 - 无状态会话bean:用于执行独立的业务操作,不维护任何客户端会话信息。 - 有状态会话bean:...

    javax.ejb-3.1.2.2.jar下载

    在EJB 3.1中,实体bean主要通过JPA(Java Persistence API)进行管理,允许开发者使用ORM(对象关系映射)来处理数据库操作。 3. **消息驱动bean(Message-Driven Beans,MDB)**:专门用于处理JMS(Java Message ...

    ejb-persistence.jar

    ejb-persistence.jar JPA注解

    EJB3.0-JPA实体的注解规范以及Hibernate特有的扩展

    ### EJB3.0-JPA实体的注解规范以及Hibernate特有的扩展 #### 一、概述 EJB3.0引入了一种新的编程模型,它基于Java Persistence API (JPA),使得开发人员能够更加轻松地创建企业级应用。JPA允许使用POJO(Plain Old...

    JPA学习笔记-EJB-03JPA主键生成策略总结

    ### JPA主键生成策略详解 #### 一、概述 持久化对象的主键生成机制在JPA(Java Persistence API)中占据着重要的位置。它不仅关乎数据的唯一标识符如何确定,还与数据的存储效率及应用逻辑紧密相关。JPA通过`@...

    javax.ejb-3.1.2.2_with-source.zip

    EJB 3.1引入了注解驱动的JPA(Java Persistence API),简化了实体管理,使得开发者可以直接在类上使用注解来定义实体关系。 5. **生命周期方法**:如`@PostConstruct`和`@PreDestroy`,分别在Bean实例初始化后和...

Global site tag (gtag.js) - Google Analytics