| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1071 人关注过本帖
标题:[求助]EJB连sqlserver的例子谁有啊?
只看楼主 加入收藏
小恶魔
Rank: 1
等 级:新手上路
威 望:1
帖 子:76
专家分:0
注 册:2007-2-20
收藏
 问题点数:0 回复次数:11 
[求助]EJB连sqlserver的例子谁有啊?
哪位大哥有EJB连数据库的例子,ODBC那种,不需要装驱动的!
我不是太懂,但是实在是急,说得对与错请您包含,只要点事例代码!
搜索更多相关主题的帖子: 数据库 sqlserver EJB连 例子 
2007-03-16 21:05
球球
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:1146
专家分:265
注 册:2005-11-28
收藏
得分:0 

虽然我还没学EJB,但我在网上搜索到一堆关于这方面的问题及答案.......

三、建立数据库连接

  EJB 容器维护数据库的连接池,这个连接池对 EJB 组件来说是透明的。当EJB 组件申请一个连接时,EJB 容器从连接池中提取一个连接并分配给组件。由于EJB 容器只是分配一个连接给 EJB 组件,所以组件很快就获得这个连接并连接数据库。数据库调用之后,组件就可以释放连接,这样它又可以快速申请到另一个连接。又因为一个组件只占用这个连接很短的时间,从而同一个连接可以被多个组件使用。
  组件不是通过数据库的绝对名来连接数据库,而是用逻辑名连接到数据库, 即用 JNDI lookup 来获得数据库连接,例如:在下面例子中的AccountEJB 类中,连接数据库有以下几个步骤:
  1、指定数据库的逻辑名:
  private String dbName = "java:comp/env/jdbc/AccountDB";
  2、获得数据源:
  InitialContext ic = new InitialContext();
  DataSource ds = (DataSource) ic.lookup(dbName);
  3、从数据源得到数据库连接:
  Connection con = ds.getConnection();

  这种间接的连接数据库有以下几个优点:
  · 可以在具有不同的数据库名的不同环境中部署相同的 EJB 组件。
  · 可以在多个应用中重用EJB 组件。
  · 可以集成 EJB 组件到运行在分布环境的应用系统中。

  另外,EJB 规范没有要求 J2EE的实现支持某一个特别类型的数据库系统,因此EJB 组件可以连接到不同的数据库系统。


好累
2007-03-17 11:58
风月_无边
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:60
帖 子:2960
专家分:652
注 册:2007-1-19
收藏
得分:0 
1、指定数据库的逻辑名:
  private String dbName = "java:comp/env/jdbc/AccountDB";
";

这个数据库的逻辑名什么意思?

我的网站 http://www.
2007-03-17 15:01
球球
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:1146
专家分:265
注 册:2005-11-28
收藏
得分:0 
数据库名

好累
2007-03-17 20:33
风月_无边
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:60
帖 子:2960
专家分:652
注 册:2007-1-19
收藏
得分:0 

是数据库的路径吗?


我的网站 http://www.
2007-03-17 21:12
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 

我这里用JBOSS的EJB容易做一个例子

你得做一个XML文档,里面声明了数据源的一些配置

[CODE]
<!--文件名:mssql-ds.xml-->
<datasources>
<local-tx-datasource>
<jndi-name>MSSQLDS</jndi-name>
<connection-url>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=testEJB</connection-url>
<driver-class>com.microsoft.jdbc.sqlserver.SQLServerDriver</driver-class>
<user-name>sa</user-name>
<password>123456</password>
<!-- sql to call when connection is created
<new-connection-sql>some arbitrary sql</new-connection-sql>
-->
<!-- sql to call on an existing pooled connection when it is obtained from pool
<check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
-->
<!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
<metadata>
<type-mapping>MS SQLSERVER2000</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>[/CODE]

以上的一些参数,你可以换成你自己想要的参数,比如connection-url,我这里用的是直连,如果你的JDBC:ODBC的话,也可以换成你自己的URL,用户名密码,你自己填 ,如果密码为空,就留空,关键的一点,jndi-name是EJB找到这个数据源的标志,这个名字你要记住,你可以换成任何你自己喜欢的名字

然后就可以用实体BEAN来访问它了
实体BEAN的配置文件如下
persistence.xml
[CODE]<persistence>
<persistence-unit name="hadeslee">
<jta-data-source>java:/MSSQLDS</jta-data-source>
<properties>
<property name="hibernate.hbm2ddl.auto" value="create-drop"/>
</properties>
</persistence-unit>
</persistence> [/CODE]

然后你可以用JNDI获得DataSource
不过既然你都用了EJB了,就干脆把你的表映射成一个个EntityBean多好

如果你是初学者的话,建议先把JAVA SE的一些基础学好再来搞EJB


可惜不是你,陪我到最后
2007-03-18 10:34
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
老千那样弄是需要安装驱动的~~人家要求是ODBC

淘宝杜琨
2007-03-18 10:48
风月_无边
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:60
帖 子:2960
专家分:652
注 册:2007-1-19
收藏
得分:0 
,看来 这里除了冰封搞过EJB。   

我的网站 http://www.
2007-03-18 10:48
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
以下是引用神vLinux飘飘在2007-3-18 10:48:00的发言:
老千那样弄是需要安装驱动的~~人家要求是ODBC

我不是叫他把URL改为jdbc:odbc的格式吗


可惜不是你,陪我到最后
2007-03-18 10:51
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
哦,没仔细看

淘宝杜琨
2007-03-18 10:53
快速回复:[求助]EJB连sqlserver的例子谁有啊?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031834 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved