- 浏览: 325501 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
di1984HIT:
谢谢,写的不错。
使用hector操作Cassandra -
mr_von:
非常感谢!
paoding的分词使用 -
howgoo:
http://www.dhtmlx.com/docs/prod ...
dhtmlxGrid分页与排序 -
青春的、脚步:
谢谢
spring-data-mongodb的MongoTemplate 使用小例子 -
青春的、脚步:
xiaofancn 写道青春的、脚步 写道这个能查询都个值在某 ...
spring-data-mongodb的MongoTemplate 使用小例子
一、部署Jboss数据源
mysql的jdbc驱动复制到jboss服务器的lib目录中
修改jboss数据源配置文件:到jboss-5.1.0.GA\docs\examples\jca目录下找到对应的数据源配置文件,我用的是mysql,所以只修改mysql-ds.xml文件
修改成自己的mysql地址
<jndi-name>MysqlDS</jndi-name> <connection-url>jdbc:mysql://localhost:3306/bbs?useUnicode=true&characterEncoding=UTF-8</connection-url> <driver-class>com.mysql.jdbc.Driver</driver-class> <user-name>root</user-name> <password>123456</password>
修改完保存到目录jboss-5.1.0.GA\server\default\deploy下,启动Jboss(我用的是Myeclipse启动Jboss),命令控制台看到
部署成功提示 JNDI name 'java:MysqlDS';
二、开发实体Bean
使用Myeclipse新建EJB项目,JNDI Data Source填写Jboss的JNDI name,前面的控制台可以看到,Persistence Unit Name自己命名,如:MysqlUnit
完成
引入Jboss所有的jar包到项目中
使用Myeclipse的Hibernate视图,EJB反向工程
点击完成
三、编写业务逻辑接口
我们来写一个接口
public interface DuserService { public void delete(Integer id); public Duser getDuser(Integer id); public List<Duser> getDusers() ; public void save(Duser user); public void update(Duser user); }
无状态会话Bean
@Stateless//设置成无状态会话Bean @Remote(DuserService.class)//设置成远程Bean,公开“接口” public class DuserServiceBean implements DuserService{ /* * 注入EntityManager对象 * unitName要与persistence.xml文件中保持一致 */ @PersistenceContext(unitName = "MysqlUnit") EntityManager em; public void delete(Integer id) { /* * em.getReference(Duser.class, id) * 得到一个托管的实体对象 */ em.remove(em.getReference(Duser.class, id)); } public Duser getDuser(Integer id) { return em.find(Duser.class, id); } @SuppressWarnings("unchecked") public List<Duser> getDusers() { return em.createQuery("select o from Duser o").getResultList(); } public void save(Duser user) { /* * 保存新建状态对象,插入数据库,添加新纪录 */ em.persist(user); } public void update(Duser user) { /* * 实体Bean处于游离状态,可以删除 */ em.merge(user); /* * 托管状态,使用set方法就可以修改数据user.set*(); */ } }
我们发布到Jboss中,启动Jboss,在控制台中观察,
16:10:35,937 INFO [JndiSessionRegistrarBase] Binding the following Entries in Global JNDI: DuserServiceBean/remote - EJB3.x Default Remote Business Interface DuserServiceBean/remote-cn.snailteam.entity.DuserService - EJB3.x Remote Business Interface
说明我们的DuserServiceBean无状态会话Bean已经部署成功。
四、测试
新建一个DuserService接口测试类
public class DuserServiceTest { public static DuserService service; @BeforeClass public static void setUpBeforeClass() throws Exception { /* * 参数来自于当前目录下的jndi.properties文件 *远程调用的话,通过jndi.properties找到会话Bean,如果在一个容器内的话 *(比如部署在同在一个EJB容器内既一个Jboss内),就不需要jndi.properties, *直接在容器中初始化上下文,找到EJB会话Bean */ javax.naming.InitialContext ctx = new javax.naming.InitialContext(); /* * Jboss启动控制台中可以观察到 * DuserServiceBean/remote - EJB3.x Default Remote Business Interface */ service = (DuserService) ctx.lookup("DuserServiceBean/remote"); System.out.println("初始化完成"); } @Test public void testDelete() { } @Test public void testGetDuser() { } @Test public void testGetDusers() { List<Duser> users = service.getDusers(); for(Duser user:users){ System.out.println(user.getUid()+"-------"+user.getUsername()); } } @Test public void testSave() { } @Test public void testUpdate() { } }
测试之前我们需要设置初始化上下文件jndi.properties (可以查文档)
#Jboss命名连接工厂 java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory #Jboss命名连接工厂地址 java.naming.provider.url=localhost:1099
可以测试了。
发表评论
-
spring cloud gateway 全局过滤器。
2019-03-17 23:11 487spring cloud gateway 网关 ... -
elasticsearch 5.4搜索
2017-05-19 08:37 148@Test public void t ... -
netty简单的操作memcached
2017-04-19 18:59 938pom文件 <dependency> ... -
juc系列-Executor框架
2017-03-20 13:34 658转自 juc系列-Executor框架 什 ... -
ReentrantLock 类
2017-03-19 21:11 11.1 什么是reentrantlock java.u ... -
juc之CountDownLatch、CyclicBarrier和Semaphore例子
2017-03-19 17:23 787import java.util.concurren ... -
netty客户端与服务端例子
2017-03-12 20:07 2762package com.snailteam.nett ... -
freemaker集成spring
2017-02-26 19:00 525<bean id="freeMark ... -
spring集成Hessian插件配置改成自动注入。
2017-02-10 15:39 791原来的配置 <bean name="/ ... -
web开发模版
2017-02-09 14:42 0# Rules reminder: # DEBUG &l ... -
Java多线程
2017-02-04 14:39 483线程状态图 新建状态(New): ... -
hash冲突解决
2017-01-23 18:30 4181、开放地址法有一个公式: m是hash表长度,di ... -
mybatis +spring 分库
2015-04-30 17:56 353<context:component-scan b ... -
Java并发任务处理例子
2014-02-12 16:06 1094public void init() { su ... -
JAVA动态代理模式
2012-10-03 01:01 1143这是我要实现的效果 public static ... -
paoding的分词使用
2012-06-13 21:30 4833paoding下载 http://code.googl ... -
使用spring-hadoop操作hadoop
2012-05-20 02:12 32参考文章 http://blog.springsource. ... -
solr3.5集成paoding和位置搜索及对solrj的使用。
2012-04-28 02:12 1918http://xiaofancn.iteye.com/blog ... -
日期处理DateUtils
2012-03-24 09:47 4745import java.text.SimpleDateF ... -
Cassandra的数据分布情况测试
2012-03-16 15:09 19931、规划种子节点ip和Token值的对应 4个种子 ...
相关推荐
EJB3.0的一个单表映射实体bean,实现对数据的增、删、改、查
10_开发单表映射的实体bean 11_开发消息驱动bea 12_开发EJB容器模型的WEB服务 附录01_EJB3基本概念及发展前景 附录02_EJB3.0推荐教程 附录03_EJB3的运行环境 如果需要配套视频,请给本人私信。
全书共分16章,内容依次包含了Java EE概述、EJB基础、搭建EJB环境、会话bean、持久化实体、持久化实体管理器、对象关系映射、JPQL查询、消息驱动bean、事务、提高EJB 3.0性能、从Web层访问EJB 3和EJB安全、EJB和Web...
6.4 单表映射的实体BEAN..38 6.5 持久化实体管理器ENTITYMANAGER..43 6.5.1 Entity获取find()....43 6.5.2 添加 persist().........43 6.5.3 更新 Merge() .........44 6.5.4 删除 Remove() .......44 6.5.5 执行 ...
6.4 单表映射的实体BEAN..38 6.5 持久化实体管理器ENTITYMANAGER..43 6.5.1 Entity获取find()....43 6.5.2 添加 persist().........43 6.5.3 更新 Merge() .........44 6.5.4 删除 Remove() .......44 6.5.5 执行 ...
在前面的例子中,我们每一个实体Bean只映射到数据库中的一张表上。事实上,一个实体Bean可以映射到多张表上。在一些需要字典表的项目上会经常用到,象以前我做过的项目,使用到很多国标规定的数据表。在我们下面这个...
在本文中将对新的规范进行一个概要性的介绍,包括新增的元数据支持,EJBQL的修改,实体Bean模型访问bean上下文的新方法和运行时环境等等。作者还讨论了EJB在未来要作出的调整以及EJB3.0与其他开发规范之间的关系。 ...
EJB3.0实例教程PDF 黎活名著 1.2 联系作者.....................................................................................................6.4 单表映射的实体BEAN............................................
EJB测试题.EJB原理与运行环境,实体 BEAN(ENTITY BEAN)与 ORM 关系对象映射,EJB3.0 QL语言.等
EJB3由于融合了POJOs和其他一些轻量级概念,所以对两者POJOs中的实体bean既可以再EJB容器内运行,也可以再EJB容器外运行,然而POJOs中的会话bean和消息驱动bean仍然有重量级的行为,因为他们只能在EJB容器内部运行。...
第一部分 从Hibernate和EJB 3.0开始 第1章 理解对象/关系持久化 1.1 什么是持久化 1.1.1 关系数据库 1.1.2 理解SQL 1.1.3 在Java中使用SQL 1.1.4 面向对象应用程序中的持久化 1.2 范式不...
作为 Java 企业版 5 (Java EE 5) Enterprise Java Bean (EJB) 3.0 规范的组成部分,Java 持续性 API (JPA) 显著简化了 EJB 持续性并提供了一个对象关系映射方法,该方法使您可以采用声明方式定义如何通过一种标准...
作为 Java 企业版 5 (Java EE 5) Enterprise Java Bean (EJB) 3.0 规范的组成部分,Java 持续性 API (JPA) 显著简化了 EJB 持续性并提供了一个对象关系映射方法,该方法使您可以采用声明方式定义如何通过一种标准的...
* @Table —— 注解声明了该实体bean映射指定的表(table),目录(catalog)和schema的名字 * @Column —— 注解声明了属性到列的映射。该注解有如下的属性 * name 可选,列名(默认值是属性名) * unique 可选,...