将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>
之后运行打包工作(ejbjar)
找到打包后的文件,解压缩打开查看是否存在persistence.xml
做应用时,一定要检查此步骤
打包之后就可以发布了,需要注意:
在persistence.xml中配置了数据源<jta-data-source>
在发布之前,一定要确保数据源文件发布
(用ANT打包EJB时,不能有JUNIT的测试文件类)文章底部会讲解决方案
数据源文件已经发布后,执行deploy工作
当实体bean发布成功后,就可以编写客户端调用代码了
PersonService定义的方法比较多,采用单元测试
选中这个接口,点右键new Junit Test Case
将PersonServiceTest文件放在junit.test包下
并勾选setUpBeforeClass()方法,下一步
勾选接口中所有业务方法,完成
在测试中,添加成员变量private static PersonService personService用于接收代理对象
将HelloWorld项目src下的jndi.properties文件拷贝到EntityBean项目的src下
再把原先HelloWorld客户端代码,拷贝到beforeClass()中
调用lookUp()查询PersonServiceBean的EJB类
类的远程接口名,默认为简单类名称/remote
这步操作也许会出错,用try-catch捕获异常并输出
testSave()方法实现:
personService.save(new Person("小明"));
点左边的红叉子,选择生成构造函数(带参数)
在Person实体Bean中添加带参构造,将name传入
在实体bean中,必须要保留一个无参构造(由JPA规范定义)
如果没有无参构造,使用时会报错
此时就可以测试这个方法了,(操作大纲视图Outline)
数据库里成功插入一条,但会出现乱码
当配置数据源时,没有指定编码格式
打开数据源配置文件,修改<connection-url>中
在后面追加
?useUnicode=true&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的元数据去生成数据库表
在持久化文件中(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
修改之后重新发布
测试:
把数据库表删掉(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交通罚单登记表”指的是利用Visual Studio(VS)这个开发环境,结合C#编程语言,来设计一个系统,该系统能够处理交通罚单的登记工作,并且支持将...
2. **赏罚制度**:公司需设定明确的赏罚标准,包括但不限于工作绩效、工作态度、团队合作等方面,确保公平公正。赏罚制度应与公司的目标和价值观相一致。 3. **赏罚原因**:赏罚单中的“事由”部分记录了员工受奖惩...
交警登录后可查看自己开的罚单、开罚单、对未缴费的罚单进行修改和删除; 驾驶员登录后可查看自己名下车辆的罚单,也可以查看自己驾驶证的罚单,对未缴费的罚单进行缴费; 系统可以使用Java集合存储数据,也可以...
【车辆罚单管理系统】是一个基于C语言开发的应用程序,主要用于管理交通违章罚款的相关信息。C语言作为基础的编程语言,以其高效、灵活和跨平台的特性,被广泛应用于各种系统开发,包括小型的命令行应用如本例中的...
需要设计合理的数据表结构,如罚单表(包含违章类型、罚款金额、处理状态等字段)、车辆表(包含车牌号、车型等信息)和驾驶员表(包含驾驶证号、姓名等信息)。 4. **JDBC(Java Database Connectivity)** - ...
- 事件表:定义了不同触发事件(如警察开罚单、驾驶员支付罚款、申诉等)及其处理流程。 - 实体关系图:显示了驾驶员、罚款单、法官和警察之间的关系,以及他们各自属性的关联。 - DFD(数据流图)片段:展示了...
(2)信息输入模块 采用追加的方式用fwrite或fprintf把处罚单信息写入处罚单信息文件。 (3)信息删除模块 输入处罚单号码,然后在处罚单信息文件中查找该条处罚单,删除之。具体删除操作:用fopen打开该文件,从...
2. 删除交通罚单信息:根据指定条件删除特定的罚单记录。 3. 浏览交通罚单信息:显示所有或特定的罚单记录。 4. 查询交通罚单:按车辆、驾驶员或开单交警进行查询。 5. 统计交通罚单:统计指定时间段内,特定驾驶员...
在本项目中,"C语言课程设计-交通罚单管理系统"是一个典型的软件开发实例,它展示了如何使用C语言来构建一个实用的应用程序。这个系统旨在模拟处理交通违章罚款的流程,帮助用户管理和追踪交通罚单的相关信息。让...
《给乌鸦的罚单》是一本由作家王一梅与画家钦吟之合作的绘本,讲述了乌鸦信守承诺,坚持诚信的故事。故事中,乌鸦因不讲卫生而收到了一张罚单,而一个年轻的警察阿龙因此陷入了尴尬,最终乌鸦兑现了自己的承诺,展现...
员工奖励惩罚单.xls
支付行业严监管常态化,其中一个重要表现是关于第三方支付机构的罚单。 据移动支付网了解,连续三年人民银行每年针对第三方支付机构开出的罚单(按处罚字号)总数量均超过100张;过去两年人民银行每年针对第三方支付...
表设计:包括学生表、图书表、借阅表、归还表、罚单表、管理员表等。 五、表设计 表设计包括学生表、图书表、借阅表、归还表、罚单表、管理员表等。 学生表:包括学生编号、学生姓名、学生性别、学生年龄、学生...
交通罚单管理系统.C
文档"参考资料-FR-YY0320营业员奖罚单.doc"很可能是详细的营业员奖罚制度或者实际的奖罚记录表。 首先,营业员奖罚单是用来记录和管理营业员工作表现的工具,它涵盖了员工的销售业绩、服务质量、客户反馈等多个方面...
- **罚单**表:罚单号(主键)、读者号、读者姓名、罚单合计、办理日期、借阅编号。 对于多值属性,如每张罚单对应的多本书的信息,则需要额外创建关联表来存储这些多值属性的数据: - **借阅书籍**表:借阅编号...
洛杉矶停车罚单数据集 数据说明: 该数据根据NAD1983州平面加利福尼亚州VFIPS0405英尺投影,以美国英尺坐标表示的纬度/经度(XY)的停车引用。 这是由洛杉矶市主办的数据集。该组织在这里有一个开放的数据平台,他们...
支付宝是阿里巴巴旗下的一款第三方支付平台,它提供了众多便捷的生活服务,包括交通罚单的在线缴纳。对于忙碌的车主来说,通过支付宝处理交通罚单无疑是一个高效且省时的选择。下面,我们将详细介绍如何使用支付宝...
2. **操作流程**:每项奖罚决定需要经过报告、审批和记录的步骤。报告者通常是发现员工表现的直接上级,而当事人也需要签名确认,确保了信息的准确性和双方的知情权。后续由部门主管、人力资源部经理和总经理逐级...