专栏首页Elton的技术分享博客EJB3入门(4)实体Bean

EJB3入门(4)实体Bean

实体Bean就是跟数据库中某个表对应的一个类。 类的每个实例对应数据库的一行记录。如果用过hibernate的人一定很熟悉这个概念。这个就是所谓的ORM模型。Jboss就是使用的Hibernate来实现的。

假设数据库中有这样一个表 [caption id=”attachment_66” align=”alignnone” width=”498” caption=”mysql 表结构”]

[/caption] 我们来写一个EJB应用,来把用户的密码得到。

先对Jboss做相关配置,便于读取数据库。 设置数据源 拷贝jboss安装目录下docs/jca中的mysql-ds.xml到default/deploy目录中,对其中的参数进行修改

    ejb
    jdbc:mysql://localhost:3306/ejb
    com.mysql.jdbc.Driver
    root
    
    org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter
    
       mySQL

再将mysql的驱动拷贝到default/lib中 在源代码目录下的META-INF中建立配置文件persistence.xml,以便ejb项目可以使用jboss的数据源

        java:/ejb

其中jta-data-source中java后面的值一定要跟jboss数据源的jndi-name一致

下面就可以开始写一个与上面的表对应的实体Bean了

package me.prosight.entity;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="users")
public class User {
	private int id;
	private String name;
	private String password;

	@Id
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}

	@Column(name = "password_md5")
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
}

@Entity 标记表明这是一个实体bean @Table 标记声明数据库的表的名字,如果不声明,同类名 @Id 表明这个字段是主键 @Column 标记说明这个属性对应的数据库中的字段名,不声明则同属性名。

我们需要建立一个无状态的session bean来调用实体bean

package me.prosight.service;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import me.prosight.entity.User;

/**
 * Session Bean implementation class UserBean
 */
@Stateless
public class UserBean implements UserBeanRemote {

	@PersistenceContext(unitName="myentity")
	protected EntityManager em;

	public String getPassword() {
		User user = em.find(User.class, 1);
		return user.getPassword();
	}

}

其中PersistenceContext中的unitName一定要跟persistence.xml中的persistence-unit中的name一致

最后,再写个测试类

package me.prosight.client;

import javax.naming.InitialContext;
import javax.naming.NamingException;

import me.prosight.service.UserBeanRemote;

public class Client {
	public static void main(String[] args) throws NamingException {
		InitialContext ctx = new InitialContext();
		UserBeanRemote user = (UserBeanRemote)ctx.lookup("UserBean/remote");

		System.out.println(user.getPassword());
	}

}

部署好ejb后,再使用这个类测试,应该就可以得到数据库中的数据了。


本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!
本文分享自作者个人站点/博客:https://blog.prosight.me/复制
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • EJB3入门(2)Stateful Session bean

    有了上节无状态session bean的基础,这回试着做一个有状态的session bean。 有状态的session bean语法上跟无状态session b...

    EltonZheng
  • EJB3最新的EJB标准

    Spring可以部分简化EJB本地和远程调用。EJB3分消息驱动Bean、有、无状态Bean和实体Bean。分别服务于应用层和持久层。JBoss的EJB3实体...

    py3study
  • SSH的快捷方式

    这样的形式来登录远程主机,每次输入用户名和主机的ip地址很麻烦。 后来发现可以在~/.ssh/config中进行配置

    EltonZheng
  • 关于Java持久化相关的资源汇集:Java Persistence API

    先来个BEA的网上技术交流会(Webinar):EJB3 Java Persistence API:好的、坏的和一般功能,附件是PPT资料。

    阿敏总司令
  • EJB 3.0 规范的变化可以大致分成2大部分

    EJB 3.0 规范的变化可以大致分成2大部分: 1、 使用了jdk1.5中提供的 annotation 机制的编程模型。在EJB2.1中采用一些接口和部署时的...

    田春峰-JCJC错别字检测
  • 在XCODE中替换__MyCompanyName__的名字

    在使用XCODE的时候,在注释中有一段公司版权的信息,但是始终是__MyCompanyName__,而且也没找到相应的界面去更改。后来发现,可以通过在命令行使用...

    EltonZheng
  • 【EJB学习笔记】——实体Bean

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/...

    DannyHoo
  • Google MAP API 初步尝试

    今天看了一下午Google的API,发现还挺简单的。稍微懂点Javascript就可以了。 写了个小例子

    EltonZheng
  • 纯手工搭建JSF开发环境(JSF2.2+maven+weblogic 12c/jboss EAP 6.1+)

    JSF 2.X因为种种原因(我个人觉得主要是因为推出太晚),再加上EJB2之前的设计过于复杂,引起很多开发人员对官方解决方案的反感,即使EJB3后来做了大量改进...

    菩提树下的杨过
  • EJB的简单介绍和使用[通俗易懂]

    大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说EJB的简单介绍和使用[通俗易懂],希望能够帮助大家进步!!!

    Java架构师必看
  • DWR的简单使用

    3 标签是dwr中重要的标签,用来描述 java(服务器端) 与 javascript (客户端)的交互方式。 其中,creator和javascript...

    qubianzhong
  • 学习java的好书及视频推荐

    要想在java领域成为大牛,除了不断进行项目实战以外,还要不断的进行进修和学习,以下将本人学习java多年使用的好书和一些好的视频推荐给大家,这些书和视频都是...

    全栈程序员站长
  • 系统监控工具JavaMelody使用案例

    官方简介: JavaMelody 能够监测Java或Java EE应用程序服务器,并以图表的方式显示:Java内存和Java CPU使用情况,用户Session...

    小柒2012
  • 学习Java好书及视频推荐

    要想在java领域成为大牛,除了不断进行项目实战以外,还要不断的进行进修和学习,以下将本人学习java多年使用的好书和一些好的视频推荐给大家,这些书和视频都是本...

    全栈程序员站长
  • 了解 Spring Data JPA

    自 JPA 伴随 Java EE 5 发布以来,受到了各大厂商及开源社区的追捧,各种商用的和开源的 JPA 框架如雨后春笋般出现,为开发者提供了丰富的选择。它一...

    DougWang
  • java入门015~springboot2整合mybatis,轻松实现mysql数据的增删改查

    1,springboot结合mybatis管理数据库 2,springboot结合jpa管理数据

    编程小石头
  • 第九节:SpringBoot在线文档Swagger2入门

    入门笔记
  • 基于Netty,从零开发IM(二):编码实践篇(im单聊功能)

    本文由作者“大白菜”分享,个人博客 cmsblogs.cn,有较多修订和改动。注意:本系列是给IM初学者的文章,IM老油条们还望海涵,勿喷!

    JackJiang

扫码关注腾讯云开发者

领取腾讯云代金券