(6) ebj学习:ejb使用jpa注解
2016-07-13 22:10
357 查看
一 EJB服务端
1 整体结构
![](https://img-blog.csdn.net/20160713220047302?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
2 代码
PersonManager.java
PersonManagerBean.java
Person.java实体
@Entity 表示为一个实体
@Table表示该实体映射到数据库中表的名字
@Id主键
@Transient 数据库忽略该属性
persistence.xml
二 客户端
1 整体结构
![](https://img-blog.csdn.net/20160713220713962?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
2 代码
jndi.properties 文件, client 文件夹,ejbServer文件夹 参考前面博客
EjbClient.java
运行main方法进行测试
三 结果
1 整体结构
2 代码
PersonManager.java
public interface PersonManager { public void addPerson(String name); }
PersonManagerBean.java
import javax.ejb.Remote; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; @Stateless @Remote public class PersonManagerBean implements PersonManager { @PersistenceContext(unitName = "test") // 注意 与 persistence.xml中persistence-unit的name相同 private EntityManager em; public void addPerson(String name) { Person p = new Person(); p.setId(10); p.setName("张三"); em.persist(p); } }
Person.java实体
@Entity 表示为一个实体
@Table表示该实体映射到数据库中表的名字
@Id主键
@Transient 数据库忽略该属性
import java.io.Serializable; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Table; import javax.persistence.Transient; @Entity @Table(name="t_person") public class Person implements Serializable{ private static final long serialVersionUID = -6384496304647032095L; @Id private int id; @Transient private String address; private String name; 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; } }
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.MySQL5Dialect" /> <property name="hibernate.hbm2ddl.auto" value="update"/> </properties> </persistence-unit> </persistence>
二 客户端
1 整体结构
2 代码
jndi.properties 文件, client 文件夹,ejbServer文件夹 参考前面博客
EjbClient.java
import javax.naming.InitialContext; import javax.naming.NamingException; import ebj.learning.PersonManager; public class EjbClient { public static void main(String[] args) throws NamingException { InitialContext context = new InitialContext(); PersonManager ejb = (PersonManager)context.lookup("PersonManagerBean/remote"); ejb.addPerson("张三"); } }
运行main方法进行测试
三 结果
相关文章推荐
- 剑指offer 3题 【数组】二维数组中的查找
- Python扫描指定目录下(包括子目录)的文件
- 公开课视频-《第07章 部署-VMware-应用程序虚拟化-ThinApp 5.1.1》
- Java多线程-生产消费者2
- 1、maven
- L2-008. 最长对称子串(manacher算法)
- H5中viewport参数
- Eayui中遇到的一些问题
- Java Web学习(11):JSP九大内置对象(一)
- RS-422接口定义
- pta 1099. Build A Binary Search Tree (30)
- ARM v8指令集(手册)
- 3种方法解决Struts2中forward问题!通过jsp:forward跳转到WEB-INF 下的action中
- Map按键排序(sort by key), 按值排序(sort by value)。
- UVA 253 Cube painting
- typedef 的四个用途和两个陷阱
- java_annotation_01
- 子元素应该margin-top为何会影响父元素【转】
- 【TJOI2016&&HEOI2016】游戏
- Ubuntu 16.04下安装sogou 拼音输入法的错误问题