- 浏览: 331458 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
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 528spring cloud gateway 网关 ... -
elasticsearch 5.4搜索
2017-05-19 08:37 148@Test public void t ... -
netty简单的操作memcached
2017-04-19 18:59 980pom文件 <dependency> ... -
juc系列-Executor框架
2017-03-20 13:34 702转自 juc系列-Executor框架 什 ... -
ReentrantLock 类
2017-03-19 21:11 11.1 什么是reentrantlock java.u ... -
juc之CountDownLatch、CyclicBarrier和Semaphore例子
2017-03-19 17:23 835import java.util.concurren ... -
netty客户端与服务端例子
2017-03-12 20:07 2802package com.snailteam.nett ... -
freemaker集成spring
2017-02-26 19:00 568<bean id="freeMark ... -
spring集成Hessian插件配置改成自动注入。
2017-02-10 15:39 835原来的配置 <bean name="/ ... -
web开发模版
2017-02-09 14:42 0# Rules reminder: # DEBUG &l ... -
Java多线程
2017-02-04 14:39 515线程状态图 新建状态(New): ... -
hash冲突解决
2017-01-23 18:30 4581、开放地址法有一个公式: m是hash表长度,di ... -
mybatis +spring 分库
2015-04-30 17:56 353<context:component-scan b ... -
Java并发任务处理例子
2014-02-12 16:06 1128public void init() { su ... -
JAVA动态代理模式
2012-10-03 01:01 1187这是我要实现的效果 public static ... -
paoding的分词使用
2012-06-13 21:30 4867paoding下载 http://code.googl ... -
使用spring-hadoop操作hadoop
2012-05-20 02:12 32参考文章 http://blog.springsource. ... -
solr3.5集成paoding和位置搜索及对solrj的使用。
2012-04-28 02:12 1991http://xiaofancn.iteye.com/blog ... -
日期处理DateUtils
2012-03-24 09:47 4816import java.text.SimpleDateF ... -
Cassandra的数据分布情况测试
2012-03-16 15:09 20361、规划种子节点ip和Token值的对应 4个种子 ...
相关推荐
在这个"EJB3.0_Servlet.rar_ejb3.0 example"的压缩包中,我们很显然会看到一个关于如何在Servlet中使用EJB 3.0的示例。 首先,EJB 3.0引入了注解驱动的编程模型,不再需要XML配置文件来定义bean的行为。开发者可以...
在这个名为"EJB3.0ExampleSourceCode.rar"的压缩包中,包含了一系列EJB 3.0的实例源代码,这些实例可以帮助我们深入理解EJB 3.0的关键特性。 1. **实体Bean(Entity Bean)**:EJB 3.0引入了基于JPA(Java ...
EJB3.0的一个单表映射实体bean,实现对数据的增、删、改、查
EJB3.0引入了注解驱动的JPA(Java Persistence API),使得实体管理更为简便。 EJB3.0的主要优点: - **分布式能力**:EJB可以在分布式环境中运行,支持跨网络的应用部署。 - **事务处理**:EJB提供了事务管理,...
1. **EJB3.0实体Bean概述**:EJB3.0实体Bean代表持久化数据模型,它们与数据库表进行映射,负责存储和检索业务数据。EJB3.0引入了注解(Annotation),使得实体Bean的配置变得更加简单,不再需要XML文件来描述Bean的...
通过`@Entity`注解定义实体类,`@Table`指定映射的数据库表,`@Id`定义主键,可以轻松实现对象关系映射。同时,`@GeneratedValue`用于自动生成主键,`@OneToMany`、`@ManyToOne`、`@ManyToMany`和`@OneToOne`用于...
3. **实体Bean(Entity Bean)**:EJB 3.0引入了JPA(Java Persistence API),用于对象关系映射(ORM)。`@Entity`注解标识一个类为持久化实体,`@Table`定义对应的数据库表,`@Id`指定主键字段,而`@...
2. **实体bean的POJO化(Plain Old Java Objects)**:EJB 3.0引入了基于Java Persistence API(JPA)的实体bean,允许使用普通的Java类作为数据库对象,无需继承特定的EJB基类或实现接口,提高了代码的可重用性。...
1. **实体Bean**:EJB 3.0引入了注解(Annotations)的概念,使得实体Bean的定义更加直观和简洁。开发者可以直接在Java类上使用`@Entity`注解来标记一个类作为实体,而不再需要XML配置文件。此外,`@Id`注解用于标识...
4. **实体bean(Entity Beans)**:EJB3.0中的实体bean基于JPA(Java Persistence API),采用ORM(Object-Relational Mapping)技术,将Java对象与数据库表进行映射。 **JPA规范与ORM映射:** JPA是Java EE平台的...
在EJB 3.0中,实体Bean的使用大大简化。不再需要实现EntityBean接口,而是通过`@Entity`注解来标记实体类。此外,EJB 3.0引入了`@GeneratedValue`来自动化主键生成,`@OneToMany`、`@ManyToOne`、`@OneToOne`和`@...
- **Java Persistence API (JPA)**: EJB 3.0中,实体Bean通常与JPA一起使用,JPA提供了一种统一的方式来访问和操作数据库,通过`@Table`, `@Id`, `@Column`等注解定义映射关系。 3. **消息Bean (Message-driven ...
在EJB3.0中,实体Bean不再需要编写复杂的Home接口和Remote接口,而是通过注解(Annotations)直接在Java类上定义。JPA(Java Persistence API)成为默认的持久化机制,使得数据模型可以直接映射到数据库表,这大大...
在"ejb3.0入门经典教程-source"这个压缩包中,包含了书中各个章节的示例代码,覆盖了EJB 3.0的各个方面,例如实体Bean的创建、会话Bean的使用、事务管理、安全性设置以及JPA的持久化操作等。这些源码对于初学者来说...
本教程聚焦于如何使用Java和EJB 3.0标准来映射实体Bean到多个数据库表。EJB(Enterprise JavaBeans)是Java EE平台的一部分,用于构建企业级应用,而EJB 3.0版本引入了许多简化开发的特性,包括注解驱动的编程模型。...
1. **实体Bean(Entity Beans)**:实体Bean代表应用程序中的持久化数据,通常对应数据库中的表。EJB3.0引入了JPA(Java Persistence API),通过注解可以轻松地定义实体类和映射关系,不再需要编写大量的XML配置...
在企业级Java应用开发中,Entity Bean(实体Bean)是核心组件之一,用于持久化业务数据。EJB 3.0是Java EE 5规范的一部分,它极大地简化了Bean的使用,包括对关系数据库的映射。本教程主要探讨的是EJB 3.0中的多对多...