EJB3.0
孙大大
我是孙大大,跟我一起念孙大大。
展开
-
JBOSS在windows下的环境配置和启动时遇到的错误
1 JDK的安装。(JBoss下载时要分清支持jdk1.5和1.6两种,如jboss-5.0.0.GA-jdk6就是支持JDK1.6的JBoss)JBoss下载链接http://labs.jboss.com/jbossas/downloads/2 配置环境变量JBOSS_HOME指向 如jboss-5.0.0.GA-jdk6 (类似配置JAVA_HOME)3 编辑环境变量Path添加 ;%JBOSS_HOME%/bin; (环境变量Path是为了可以在DOS下直接调用bin里的命令,而不需要特原创 2010-11-27 10:29:00 · 596 阅读 · 0 评论 -
EntityManager实体操作
<br /><br />EntityManager<br /> 持久化实体 persist(entity)<br />newEntity-----托管<br />托管-----无效,什么都不发生<br />删除状态------托管<br />游离-----提交时 例外抛出<br />更新实体<br />对实体的setXxx()方法的调用在容器flush时都会更新的<br />合并merge()<br />newEntity----copy一份----copy的那一份托管<br />托管----无效<br /原创 2010-11-27 10:43:00 · 740 阅读 · 0 评论 -
EJB开发web service
<br /><br />服务端的开发<br />用EJB就行服务端开发是非常简单的,EJB可以把无状态会话bean通过@WebService注解瞬间暴露为web服务。<br />例子<br /> <br />@Stateless<br />@Remote(JsunSer.class)<br />@WebService<br />public class JsunSerImpl implements JsunSer{<br />@WebMethod<br />public String run() {<br原创 2010-11-27 10:42:00 · 930 阅读 · 0 评论 -
MDB 消息驱动bean开发
<br /><br />MDB用于异步通信,其原理与android中的Intent和IntentFilter类似<br />MDB实际就是个监视特定地点destination的监听器<br />关于消息MDB只关心 消息格式和消息目的<br />JMS异步,安全(确保发送成功且只发送一次消息)<br />JMS像JDBC一样只是一个接口,标准。有P2P和Pub/Sub两种形式<br />消息分为 消息头,消息属性,消息体<br />MDB开发流程。(和MDB通信的唯一手段是将JMS消息发送给MDB正在监听的原创 2010-11-27 10:41:00 · 798 阅读 · 0 评论 -
JTA 事务管理
<br /><br /> 分为<br />CMT 容器管理事务(推荐)<br />@TransactionManagement(TransactionManagementType.CONTAINER)(类级别注解)<br />CONTAINER指明CMT容器管理事务,BEAN指明BMT管理<br />@TransactionAttribute(TransactionAttributeType.REQUIRED)(方法级别注解)<br /> 非事务性上下文Client事务性上下文ClientREQUIR原创 2010-11-27 10:40:00 · 1670 阅读 · 0 评论 -
JPQL
<br /><br /> select name ,age from user; //原生SQL语句<br />select u.name,u.age from User u; //JPQL语句<br />select u from User u; //JPQL语句<br />SQL语句是在数据库空间中对字段,列,行进行操作<br />JPQL语句是在EJB实体空间中面向对象,属性进行操作<br />JPQL必须由JPA的JPQL解析器解析为SQL才能执行,必须先获取Query对象<br />参数查询<原创 2010-11-27 10:39:00 · 711 阅读 · 0 评论 -
对象关系映射
<br /><br /> 双向一对一映射<br />class Card{<br />@OneToOne(optional=false,cascade={CascadeType.MERGE,CascadeType.REMOVE},mappedBy="card",fetch=FetchType.EAGER)<br />Person getPerson(){}<br />}<br />mappedBy 单向关系不需要设置该属性,双向关系必须设置,避免双方都建立外键字段<br />数据库中1对多的关系,关联原创 2010-11-27 10:38:00 · 1811 阅读 · 0 评论 -
实体bean的开发
涉及的注解@Entity(name="") name属性指明了JPQL中使用的实体名@Table(name="xxx")@Id@GeneratedValue(strategy=GenerationType.AUTO)GenerationType.TABLE //会创建一个表 具有序列名和对应值两个字段,易于数据库移植GenerationType.SEQUENCE //支持序列的数据库 如 OracleGenerationType.IDENTITY //使用ID自动增长 如my原创 2010-11-27 10:38:00 · 506 阅读 · 0 评论 -
EntityManager的注入
<br /><br /> 第一步:服务器数据源发布 <br />第二步:持久化单元配置<br />persistence.xml 放置到jar包的META-INF<br /> <br /><?xml version="1.0" encoding="UTF-8"?><br /><persistence xmlns="http://java.sun.com/xml/ns/persistence"<br />xmlns:xsi="http://www.w3.org/2001/XMLSchema-instanc原创 2010-11-27 10:37:00 · 2075 阅读 · 0 评论 -
EJB3.0中 持久化层的开发
<br /><br /> EJB3.0中的持久化是有JPA管理的<br />包括三个部分<br />1。实体<br /> <br /> <br />@Entity<br />@Table(name="users")<br />public class User implements Serializable{<br />@Id@GeneratedValue(strategy=GenerationType.AUTO)<br />private int id;<br />@Column(nullable=fal原创 2010-11-27 10:35:00 · 597 阅读 · 0 评论 -
会话bean 知识补充
<br /><br />1 改变会话bean的JNDI名<br />@Stateless(name="A_Bean") //此处定义的是beanName,注入此bean到其它的bean时会用到<br />@Remote(A.class) <br />@RemoteBinding(jndiBinding="AA") //@Stateless(mappedname=" ")可以统一规定全局jndi名,而不是远程,本地分别各自定义<br />class ABean implements A{原创 2010-11-27 10:33:00 · 513 阅读 · 0 评论 -
会话bean开发流程
<br /> <br />1 创建接口(最佳实践是创建两个接口A与B,B extends A)<br />interface A{}<br />interface B extends A{}<br />2 创建实现接口的会话bean,<br /> <br />@Stateless / @Stateful ------生成全局JNDI(就是可以被外界访问的JNDI) 两个 HelloWorldBean /remote HelloWorldBean /local<br />@Local(A.class原创 2010-11-27 10:32:00 · 414 阅读 · 0 评论 -
WEB层访问会话bean
<br /><br /> 使用依赖注入访问会话bean(无状态)<br />注意:只有受管的类(如:servlet)才可以使用依赖注入,其生命周期由容器管理。<br />不受管的类可以通过JNDI查找的方式得到EJB bean<br />一下说明web层哪些是受管的类的类型注入servlet,过滤器,事件监听器可以JSP 标记处理器,库事件监听器可以JSF管理的bean可以帮助器类,JSP不可以<br />1使用@EJB 注入无状态会话Bean<br />2 当Web访问有状态的会话bean比如servle原创 2010-11-27 10:45:00 · 514 阅读 · 0 评论