zoukankan      html  css  js  c++  java
  • JBOSS+EJB3+MYSQL开发

    参考文献:

    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
    欢迎任何形式的转载,但请务必注明出处。
    分享到:
  • 相关阅读:
    个性化推荐系统(二)---构建推荐引擎
    个性化推荐系统(一)---今日头条等的内容划分、分类
    双11线上压测netty内存泄露
    数据、信息、知识、智慧
    ReentrantLock的相关方法使用
    公平锁和非公平锁
    Lock中使用Condition实现等待通知
    使用IO流将数据库中数据生成一个文件,结果使用Notepad++打开部分数据结尾出现NUL
    ThreadLocal的使用
    join方法
  • 原文地址:https://www.cnblogs.com/xwdreamer/p/2296954.html
Copyright © 2011-2022 走看看