JBOSS+EJB3+MYSQL开发

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介:

参考文献:

myeclipse+jboss开发EJB3.0之实体Bean

MyEclipse+JBoss开发EJB3.0

ejb3.0中persistence.xml文件

EJB项目中Persistence.xml配置

 

一. 配置

       Jboss有一个默认的数据源DefaultDS,他使用Jboss内置的HSQLDB数据库。实际应用中你可能使用不同的数据库,如MySql、MsSqlServer、Oracle等。各种数据库的数据源配置模版你可以在[Jboss_home]\docs\examples\jca 目录中找到,默认名称为:数据库名+ -ds.xml 。不管你使用那种数据库都需要把他的驱动类Jar 包放置在[Jboss_home]\server\all\lib 目录下,放置后需要启动Jboss服务器。前一篇博客有提到相关内容: JBoss中配置数据源出现错误:“Failed to register driver for: com.mysql.jdbc.Driver”的解决方法  
        下面介绍Mysql的数据源配置,数据源配置文件的取名格式必须为 xxx–ds.xml ,如:mysql-ds.xml ,mssqlserver-ds.xml,oracle-ds.xml 。 数据源文件配置好后需要放置在[jboss_home]/server/config-name/deploy目录下,我现在采用的配置名为:default,所以路径为[jboss_home]/server/default/deploy目录下面定义一个名为MySqlDS的Mysql数据源,连接数据库为ejb,数据库登录用户名为root,密码为root,数据库驱动类为com.mysql.jdbc.Driver。大家只需修改数据库名及登录用户名密码就可以直接使用。
mysql-ds.xml

 

 

二. 开发实体bean

开发前先介绍需要映射的数据库表:person

 

注意:在这里并没有在数据库中建表,表是在发布ejb这个jar包的时候创建的。
Person.java

 

 

为了使用上面的实体Bean,我们定义一个Session Bean作为他的使用者。下面是Session Bean 的业务接,他定义了两个业务方法insertPerson和getPersonNameByID,insertPerson用作添加一个Person,getPersonNameByID 根据personid获取人员的姓名。

PersonDAO.java

 

下面是Session Bean的实现 

 

 

        上面我们使用到了一个对象:EntityManager em,EntityManager 是由EJB容器自动地管理和配置的,不需要用户自己创建,他用作操作实体Bean。关于他的更多介绍请参考持久化实体管理器EntityManager。 上面em.find()方法用作查询主键ID 为personid的记录。em.persist()方法用作向数据库插入一条记录。
大家可能感觉奇怪,在类中并没有看到对EntityManager em进行赋值,后面却可以直接使用他。这是因为在实体Bean加载时,容器通过@PersistenceContext注释动态注入EntityManager 对象。
        如果persistence.xml文件中配置了多个不同的持久化内容。你需要指定持久化名称注入EntityManager 对象,可以通过@PersistenceContext注释的unitName属性进行指定,例:

 

 

如果只有一个持久化内容配置,不需要明确指定。 

 

下面是persistence.xml文件的配置: 

三.打包项目并发布

 

1. 配置数据源文件mysql-ds.xml并放置在[jboss_home]/server/deploy/deploy 目录,把数据库驱动Jar 包mysql-connector-java-bin.jar放置在[Jboss_home]\server\default\lib 目录下,放置后需要重启Jboss服务器。如果数据源已经存在就不需要配置。
2. 配置persistence.xml文件,在文件中指定使用的源据源及各项参数。 
3. 把实体类和persistence.xml文件打成Jar,persistence.xml 放在jar 文件的META-INF目录
打包方法:在eclipse中右键项目EJBStudy->export->java->jar file,然后选择要打包的内容,如下图所示:

将生成的EJBStudy.jar放到目录jboss-5.0.1.GA\server\default\deploy下。这个时候eclipse的console中会提示信息:

 

我们在mysql数据库中也会看到ejb数据中创建了一张person表。

四.测试

创建一个EJB客户端来测试,代码如下

不明白为什么会有如下这么多警告,不过数据已经正确插入表person中





本文转自xwdreamer博客园博客,原文链接:http://www.cnblogs.com/xwdreamer/archive/2011/10/20/2296954.html,如需转载请自行联系原作者


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
4月前
|
存储 关系型数据库 MySQL
Linux C/C++ 开发(学习笔记八):Mysql数据库图片存储
Linux C/C++ 开发(学习笔记八):Mysql数据库图片存储
53 0
|
4月前
|
关系型数据库 MySQL 数据库
Linux C/C++ 开发(学习笔记七):Mysql数据库C/C++编程实现 插入/读取/删除
Linux C/C++ 开发(学习笔记七):Mysql数据库C/C++编程实现 插入/读取/删除
54 0
|
17天前
|
SQL 存储 关系型数据库
数据库开发之mysql前言以及详细解析
数据库开发之mysql前言以及详细解析
19 0
|
4月前
|
NoSQL 关系型数据库 MySQL
基于Python和mysql开发的智慧校园答题考试系统(源码+数据库+程序配置说明书+程序使用说明书)
基于Python和mysql开发的智慧校园答题考试系统(源码+数据库+程序配置说明书+程序使用说明书)
|
4月前
|
NoSQL 关系型数据库 MySQL
基于Python和mysql开发的BBS问答社区管理系统(源码+数据库+程序配置说明书+程序使用说明书)
基于Python和mysql开发的BBS问答社区管理系统(源码+数据库+程序配置说明书+程序使用说明书)
|
2月前
|
SQL 存储 关系型数据库
【MySQL技术专题】「实战开发系列」一同探索一下数据库的加解密函数开发实战指南之AES系列
【MySQL技术专题】「实战开发系列」一同探索一下数据库的加解密函数开发实战指南之AES系列
50 0
|
2天前
|
传感器 人工智能 前端开发
JAVA语言VUE2+Spring boot+MySQL开发的智慧校园系统源码(电子班牌可人脸识别)Saas 模式
智慧校园电子班牌,坐落于班级的门口,适合于各类型学校的场景应用,班级学校日常内容更新可由班级自行管理,也可由学校统一管理。让我们一起看看,电子班牌有哪些功能呢?
41 4
JAVA语言VUE2+Spring boot+MySQL开发的智慧校园系统源码(电子班牌可人脸识别)Saas 模式
|
9天前
|
关系型数据库 MySQL PHP
【PHP 开发专栏】PHP 连接 MySQL 数据库的方法
【4月更文挑战第30天】本文介绍了 PHP 连接 MySQL 的两种主要方法:mysqli 和 PDO 扩展,包括连接、查询和处理结果的基本步骤。还讨论了连接参数设置、常见问题及解决方法,如连接失败、权限和字符集问题。此外,提到了高级技巧如使用连接池和缓存连接信息以优化性能。最后,通过实际案例分析了在用户登录系统和数据管理中的应用。
|
13天前
|
JavaScript 前端开发 关系型数据库
node+vue3+mysql前后分离开发范式——实现视频文件上传并渲染
node+vue3+mysql前后分离开发范式——实现视频文件上传并渲染
24 1
|
13天前
|
JavaScript 前端开发 API
node+vue3+mysql前后分离开发范式——实现对数据库表的增删改查
node+vue3+mysql前后分离开发范式——实现对数据库表的增删改查
35 1