`
leon.s.kennedy
  • 浏览: 110526 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

开发单表映射的实体bean 2

    博客分类:
  • ejb3
 
阅读更多

 

将HelloWorld项目中的build.xml文件拷贝到EntityBean项目下
修改其中配置:
1.修改项目名称
<project name="EntityBean" basedir=".">
2.修改发布EJB过程
由于JPA规范META-INF下必须存在persistence.xml
添加<metainf>标签,定位到META-INF
使用这个标签可以把META-INF下的所有文件,打包进jar文件的META-INF目录下

<jar ......>
   <metainf dir="${src.dir}\META-INF"></metainf>

</jar>

开发单表映射的实体bean <wbr>2


之后运行打包工作(ejbjar)
找到打包后的文件,解压缩打开查看是否存在persistence.xml
做应用时,一定要检查此步骤

 开发单表映射的实体bean <wbr>2

打包之后就可以发布了,需要注意:
在persistence.xml中配置了数据源<jta-data-source>
在发布之前,一定要确保数据源文件发布

(用ANT打包EJB时,不能有JUNIT的测试文件类)文章底部会讲解决方案
数据源文件已经发布后,执行deploy工作

 

当实体bean发布成功后,就可以编写客户端调用代码了


PersonService定义的方法比较多,采用单元测试
选中这个接口,点右键new Junit Test Case
将PersonServiceTest文件放在junit.test包
并勾选setUpBeforeClass()方法,下一步
勾选接口中所有业务方法,完成

 开发单表映射的实体bean <wbr>2

在测试中,添加成员变量private static PersonService personService用于接收代理对象

 

HelloWorld项目src下的jndi.properties文件拷贝到EntityBean项目的src
再把原先HelloWorld客户端代码,拷贝到beforeClass()
调用lookUp()查询PersonServiceBean的EJB类
类的远程接口名,默认为简单类名称/remote

 开发单表映射的实体bean <wbr>2

这步操作也许会出错,用try-catch捕获异常并输出

 

testSave()方法实现:
personService.save(new Person("小明"));
点左边的红叉子,选择生成构造函数(带参数)
在Person实体Bean中添加带参构造,将name传入
在实体bean中,必须要保留一个无参构造(由JPA规范定义)
如果没有无参构造,使用时会报错

此时就可以测试这个方法了,(操作大纲视图Outline)

 

数据库里成功插入一条,但会出现乱码
当配置数据源时,没有指定编码格式
打开数据源配置文件,修改<connection-url>
在后面追加

?useUnicode=true&amp;characterEncoding=UTF-8
(如果数据库采用的utf-8)

在MySQL中需要Oracle中不需要
修改后保存(动态发布)

再执行保存的测试方法,数据库信息显示正常

 

当插入中文字符时会报:Data too long for column
数据库中没有采用中文字符编码
可以使用下面的SQL创建数据库:
create database 'shop' DEFAULT CHARSET=UTF-8

---------------------------------

testUpdate()方法实现:
先取得Person对象(personService.getPerson()) 也对查找方法进行测试了
再修改该对象的属性
之后调用personService.update();

 

testGetPerson()方法实现:
Person p = personService.getPerson();
syso...p.getName();

 

testDelete()方法实现:
personService.delete(int id);

 

testGetPersons()方法实现:
先插入进几条数据之后
List<Person> persons = personService.getPersons();
for(Person person : persons){
  syso...(person.getName());
}

 开发单表映射的实体bean <wbr>2

----------------------------------
有时希望用实体bean的元数据去生成数据库表
在持久化文件中(persistence.xml)的<persistence-unit>标签中
添加:
<properties>
 <!-- 应用发布后自动创建表,解发布后,删除表,做测试时有用实际开发中,这个属性是

不能设置的 value取值有多个,其中update可以保留数据库中的数据,如果修改了实体bean,也会同步

到数据库表字段-->
 <property name="hibernate.hbm2ddl.auto" value="update" />
 <!-- 显示最终执行的SQL -->
 <property name="hibernate.show_sql" value="true" />
 <!-- 格式化显示的SQL -->
 <property name="hibernate.format_sql" value="true" />
</properties>
属性标签,由于jboss采用Hibernate作为持久化产品此处设置的属性均为Hibernate

开发单表映射的实体bean <wbr>2

修改之后重新发布



测试:
把数据库表删掉(Person)
重新用ANT部署项目,数据库自动生成表

 

------------------------------------------------------------------

ANT打包EJB,如果有JUnit测试类,则不编译,解决方案:

原因是:没有在ANT中把单元测试的jar文件设置到classpath中

1.把JUnit 的jar包放到ANT <path>中

2.过滤掉JUnit,不编译单元测试中的类:

在<javac>中加入includes属性

<javac includes="com/**"> 指定编译以com开头的这些类

分享到:
评论

相关推荐

    VS以及PDF交通罚单登记表

    【标题】:“VS以及PDF交通罚单登记表” 在标题中提到的“VS以及PDF交通罚单登记表”指的是利用Visual Studio(VS)这个开发环境,结合C#编程语言,来设计一个系统,该系统能够处理交通罚单的登记工作,并且支持将...

    员工赏罚单.doc

    2. **赏罚制度**:公司需设定明确的赏罚标准,包括但不限于工作绩效、工作态度、团队合作等方面,确保公平公正。赏罚制度应与公司的目标和价值观相一致。 3. **赏罚原因**:赏罚单中的“事由”部分记录了员工受奖惩...

    JavaSwing实现的交通罚单管理系统

    交警登录后可查看自己开的罚单、开罚单、对未缴费的罚单进行修改和删除; 驾驶员登录后可查看自己名下车辆的罚单​,也可以查看自己驾驶证的罚单,对未缴费的罚单进行缴费; 系统可以使用Java集合存储数据,也可以...

    C语言 实现 车辆罚单管理系统

    【车辆罚单管理系统】是一个基于C语言开发的应用程序,主要用于管理交通违章罚款的相关信息。C语言作为基础的编程语言,以其高效、灵活和跨平台的特性,被广泛应用于各种系统开发,包括小型的命令行应用如本例中的...

    基于Java实现交通罚单管理系统.zip

    需要设计合理的数据表结构,如罚单表(包含违章类型、罚款金额、处理状态等字段)、车辆表(包含车牌号、车型等信息)和驾驶员表(包含驾驶证号、姓名等信息)。 4. **JDBC(Java Database Connectivity)** - ...

    罚单系统——信息系统设计.doc

    - 事件表:定义了不同触发事件(如警察开罚单、驾驶员支付罚款、申诉等)及其处理流程。 - 实体关系图:显示了驾驶员、罚款单、法官和警察之间的关系,以及他们各自属性的关联。 - DFD(数据流图)片段:展示了...

    罚单管理系统.c

    (2)信息输入模块 采用追加的方式用fwrite或fprintf把处罚单信息写入处罚单信息文件。 (3)信息删除模块 输入处罚单号码,然后在处罚单信息文件中查找该条处罚单,删除之。具体删除操作:用fopen打开该文件,从...

    C语言课程设计报告—交通罚单管理系统.doc

    2. 删除交通罚单信息:根据指定条件删除特定的罚单记录。 3. 浏览交通罚单信息:显示所有或特定的罚单记录。 4. 查询交通罚单:按车辆、驾驶员或开单交警进行查询。 5. 统计交通罚单:统计指定时间段内,特定驾驶员...

    C语言课程设计-交通罚单管理系统

    在本项目中,"C语言课程设计-交通罚单管理系统"是一个典型的软件开发实例,它展示了如何使用C语言来构建一个实用的应用程序。这个系统旨在模拟处理交通违章罚款的流程,帮助用户管理和追踪交通罚单的相关信息。让...

    给乌鸦的罚单教学设计.doc

    《给乌鸦的罚单》是一本由作家王一梅与画家钦吟之合作的绘本,讲述了乌鸦信守承诺,坚持诚信的故事。故事中,乌鸦因不讲卫生而收到了一张罚单,而一个年轻的警察阿龙因此陷入了尴尬,最终乌鸦兑现了自己的承诺,展现...

    员工奖励惩罚单.xls

    员工奖励惩罚单.xls

    2019年1-7月第三方支付罚单统计与分析报告.pdf

    支付行业严监管常态化,其中一个重要表现是关于第三方支付机构的罚单。 据移动支付网了解,连续三年人民银行每年针对第三方支付机构开出的罚单(按处罚字号)总数量均超过100张;过去两年人民银行每年针对第三方支付...

    图书管理系统数据库设计-MYSQL实现

    表设计:包括学生表、图书表、借阅表、归还表、罚单表、管理员表等。 五、表设计 表设计包括学生表、图书表、借阅表、归还表、罚单表、管理员表等。 学生表:包括学生编号、学生姓名、学生性别、学生年龄、学生...

    交通罚单管理系统.C

    交通罚单管理系统.C

    参考资料-FR-YY0320营业员奖罚单.zip

    文档"参考资料-FR-YY0320营业员奖罚单.doc"很可能是详细的营业员奖罚制度或者实际的奖罚记录表。 首先,营业员奖罚单是用来记录和管理营业员工作表现的工具,它涵盖了员工的销售业绩、服务质量、客户反馈等多个方面...

    图书馆管理系统-ER图&关系模型-参考样本.doc

    - **罚单**表:罚单号(主键)、读者号、读者姓名、罚单合计、办理日期、借阅编号。 对于多值属性,如每张罚单对应的多本书的信息,则需要额外创建关联表来存储这些多值属性的数据: - **借阅书籍**表:借阅编号...

    洛杉矶停车罚单的数据集

    洛杉矶停车罚单数据集 数据说明: 该数据根据NAD1983州平面加利福尼亚州VFIPS0405英尺投影,以美国英尺坐标表示的纬度/经度(XY)的停车引用。 这是由洛杉矶市主办的数据集。该组织在这里有一个开放的数据平台,他们...

    支付宝怎么代办交通罚单缴费?.docx

    支付宝是阿里巴巴旗下的一款第三方支付平台,它提供了众多便捷的生活服务,包括交通罚单的在线缴纳。对于忙碌的车主来说,通过支付宝处理交通罚单无疑是一个高效且省时的选择。下面,我们将详细介绍如何使用支付宝...

    酒店员工奖罚单参考.docx

    2. **操作流程**:每项奖罚决定需要经过报告、审批和记录的步骤。报告者通常是发现员工表现的直接上级,而当事人也需要签名确认,确保了信息的准确性和双方的知情权。后续由部门主管、人力资源部经理和总经理逐级...

Global site tag (gtag.js) - Google Analytics