实验5.JPA关系操作 实验内容 建立EB项目,实现双向1-N关联。一张订单中存在一个或多个订购项。Oe方存在 与ma 方关系定义,而may方也存在与o方关系的定义,这样的关系称为双向关系 代码上体现为one方有一个集合属性指向may方,而many方也有一个属性指向one方。 建立一个EJB项目,实现上述关系。 生成实体类:Order(one方)与Orderltem(many方): 实现添加订单功能: 显示订单列表: 刑除订单 修改订单: 建立实体Bean,并生成对实体进行操作的会话Bean,能够完成基本的增删改查操作, 编写Wb客户端程序进行测试。 实验目的 ◆掌握实体类之间的关系的实现: ◆能够通过JPA对具有关系的实体类进行操作 ◆能够对具有关系的实体进行复杂的查询。 实验介绍(整体与本实验) 本试验要求学生已经掌握实体类的生成过程,以及简单Java持久性API的用法。 环境要求 服务器:Jb0s6.0 集成开发环培,vEclinse&6 数据库:MSql及其驱动程序 实验指导 步臻I1:建立EJB项目,并设计实体Bean、会话Bean 1.建立EB项目,如图5-1所示
实验 5. JPA 关系操作 实验内容 建立 EJB 项目,实现双向 1-N 关联。一张订单中存在一个或多个订购项。One 方存在 与 many 方关系定义,而 many 方也存在与 one 方关系的定义,这样的关系称为双向关系。 代码上体现为 one 方有一个集合属性指向 many 方,而 many 方也有一个属性指向 one 方。 建立一个 EJB 项目,实现上述关系。 生成实体类:Order(one 方)与 OrderItem(many 方); 实现添加订单功能: 显示订单列表; 删除订单; 修改订单; 建立实体 Bean,并生成对实体进行操作的会话 Bean,能够完成基本的增删改查操作, 编写 Web 客户端程序进行测试。 实验目的 ◆ 掌握实体类之间的关系的实现; ◆ 能够通过 JPA 对具有关系的实体类进行操作; ◆ 能够对具有关系的实体进行复杂的查询。 实验介绍(整体与本实验) 本试验要求学生已经掌握实体类的生成过程,以及简单 Java 持久性 API 的用法。 环境要求 服务器:Jboss 6.0 集成开发环境: MyEclipse8.6 数据库:MySql 及其驱动程序 实验指导 步骤 1:建立 EJB 项目,并设计实体 Bean、会话 Bean 1. 建立 EJB 项目,如图 5-1 所示
Yeb Project Web Service Project Shog In AlttShiftt Java Project Report Web Project Copy Curl+C Project.. opy Qualified Name Paste Ctrl+V 的Package 卫1et GClass Delete Import. ☑xp2rt. Refresh F5 File A Applet 图5-1 2.输入项目名称,并单击下一步,如图5-2所示。 回Now EJB Project 回 Create an EJB Project Create an EJB project in the workspace or an external location EJB Project Dails Project Nome:EntityTest2 Location: ☑Use default location Directory:E:\workspace pkEntityTest2 Brovse. Source folder:rc Java EE5.0-EB3.0 OJ2E1.4-B2.1 ○J2E1.3-JB2.0 Persistence Configuration VAdd support for Entity beans (add JPA capabilities) ities to this project <Back Next)Einish☐Cancel 图5-2 设置PA persistence,.完成后单击finsh,如图5-3所示
图 5-1 2. 输入项目名称,并单击下一步,如图 5-2 所示。 图 5-2 3. 设置 JPA persistence,完成后单击 finsh,如图 5-3 所示
回New EJB Project 回 Create an EJB Project 入① 下Persi是De Persistence Unit Name:EntityTest2PU JNDI Data Source: ☑Use Java Transaction Design-time Persistence Tools Configuration Specify JPA Datasource details Driver Croate new Driver 习Update List vith 10 〈aek☐ext>☐Einish☐Cancel☐ 图5-3 4.生成项目结构如图5-4所示。 日年可 sre Java EE 5 Libraries 子 图5-4
图 5-3 4. 生成项目结构如图 5-4 所示。 图 5-4
5.修改persistence.xm文件,如图5-5、图5-6所示 父peristence,xnl3 日 EntityTest2/sre/META-TNE/persistence.x1g-g> persistence xmlns-Whttp://java.sun.com/xml/ns/persistence" http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"ver </persistence> Desic Source 图5.5 *ttp: 200 的 dd 图56 6 persistence.xm文件内容如下:
5. 修改 persistence.xm 文件,如图 5-5、图 5-6 所示。 图 5.5 图 5.6 6. persistence.xml 文件内容如下:
<?xm1 version="1.0"encoding="UTF-8"3> kpersistence xmlns-"http://iava.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"> Kpersistence-unit nape"EntityrestPU transaction typeTA <jta -dat source>java:/My: </jta-data- <properties> <property name-"hibernate.hbm2ddl.auto' value="create-drop"/> <--调整DBC抓取数量的大小:Statement,setFetchsize-- ty name-"hibe nate.jdbc.fetch_size"value-"18"/> <!-调整JDBC批量更新数量-> <property name="hibernate.jdbc.batch_size"value-"10"/> <1--显示最终执行的S0工--> <property name="hibernate.show_sql"value="true"/> <一-格武化示的0 "hibernate.format_sql"value-"true"/> </properties> </persistence-unit> persistence> 7.在s心下建立三个包,结构如图5-7所示 用Packa Hiara口日 4巴EntityTest2 由cn.edu.ejb3.ipl ETA-I证 图5.7 a)在包cn.edu.ejb3.bean下设计两个实体Bean:Order.java、Orderltem.java 代码如下:
<?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="EntityTest2PU" transaction-type="JTA"> <jta-data-source>java:/MySqlDS</jta-data-source> <properties> <property name="hibernate.hbm2ddl.auto" value="create-drop"/> <!-- 调整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> 7. 在 src 下建立三个包,结构如图 5-7 所示。 图 5.7 a) 在包 cn.edu.ejb3.bean 下设计两个实体 Bean:Order.java、OrderItem.java 代码如下: