实体EJB的数据库设置

如果bmp的话,程序里用DataSource的jndi逻辑名,在ejb-jar.xml里配 jndi物理名。 
如果cmp,找container的帮助。 


EJB中如何设置Datasourse ?

实体bean,不管是BMP还是CMP都可以使用本地的JNDI来连接, 
以JB和weblogic为例。 
具体如下: 
1 配置容器的DataSource,weblogic里面需要添加pool和TXDataSource 
与数据库的连接以及驱动在pool中配置。 
2 在CMP实体bean中通过配置data-source-name为对应的JNDI名(一般是系统生成的) 
3 对于BMP的bean,在一个jar中需要有一个bean定义JNDI名的本地引用,来与容器的对应 
bean的Resource References中添加相应的内容即可。 
我是这样配置的:本地Name为jdbc/dsProvider (这个说法很容易混淆,weblogic中的物理JNDI名是在weblogic-ejb-jar.xml中设置的,而你的例子中“java://comp/jdbc/dsProvider之类的是逻辑名,需要映射为物理名这些都是由ejb-jar.xml和weblogic-ejb-jar.xml两个部署描述符指定的,而Entity Bean的RDBMS的映射则在weblogic-cmp-rdbms-jar.xml中指明)
Type为javax.sql.DataSource 
采用容器管理 
Deployment Settings for jdbc/dsProvider为weblogic的datasource 
的JNDI名。 
在程序中通过查找对应的本地的JNDI 
dsProvider = (DataSource) context.lookup("java:comp/env/jdbc/dsProvider"); 
便可以获得weblogic中对应的DataSource,conncection便可以 
通过conn = dsProvider.getConnection();获得。 
这样CMP和BMP的连接配置都只需在pool中维护即可。 
我是这么配置的,不知道是否说的正确。 

依据EntityBean的性质而定。 
如果是BMP的话就需要编码实现与数据库的连接,并实现存储和加载数据。 
这和一般通过jdbc操作数据没有太大区别。 
如果是CMP,可以通过配置文件实现EntityBean中数据的存储和加载,程序员不用 
去关心数据库的实现。就是需要在部署人员指定连接的数据库。然而现在的数据源设置 
多和ejb container相关。并没有在规范中指定数据源。 
所以如果你使用cmp就需要知道你使用的ejb container和数据库了。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值