快速应用JDBC控件访问数据库资源

http://tech.ddvip.com   2006年11月20日    社区交流

本文详细介绍快速应用JDBC控件访问数据库资源

  ConnectionDataSource注释

  ConnectionDataSource注释用于指定JDBC控件在访问数据库时通过DataSource获取数据库连接,它有两个属性:jndiName和jndiContextFactory。

  ·jndiName

  String类型,用于设置DataSource在目标容器内的jndiName属性

  ·jndiContextFactory

  Class类型,用于设置数据库访问时可以获取jndi上下文环境的类,被传入的参数类必须继承org.apache.beehive.controls.system.jdbc.JdbcControl. JndiContextFactory类,并且覆盖JndiContextFactory类的getContext()方法,getContext()将获取访问目标容器的上下文环境(Context)。

  下面的章节中我们将看到如何通过JDBC控件和ConnectionDataSource注释访问Tomcat服务器,获取jndiName为jndi/samplesDataSource的DataSource资源,该DataSource连接到MySQL数据库的Demo实例,Web应用部署在Tomcat环境中。

  修改Tomct配置文件,创建DataSource资源

  ·如何创建Tomcat环境下的DataSource资源请参考Tomcat的帮助文档。

  修改Web应用的配置文件web.xml,增加如下内容,增加对资源的引用

  Datasource example
jndi/samplesDataSource
javax.sql.DataSource
Container
  

  ·创建访问Tomcat服务器Jndi上下文的类JndiContextFactory

  JndiContextFactory类继承自JdbcControl.JndiContextFactory父类,覆盖父类中的抽象方法----getContext(),清单3 中显示了JndiContextFactory类定义和实现的完整代码。

  清单3 src orgvivianjeehivecontrolsexamplescontrols

  jndicontextJndiContextFactory.java
1. package org.vivianj.beehive.controls.examples.controls.jndicontext;
2.
3. import java.util.Hashtable;
4.
5. import javax.naming.Context;
6. import javax.naming.InitialContext;
7.
8. import org.apache.beehive.controls.system.jdbc.JdbcControl;
9.
10. /**
11. * JndiContextFactory 用于从Tomcat服务器中获取访问JNDI内容的上下文环境
12. */
13. public class JndiContextFactory extends JdbcControl.JndiContextFactory {
14. /**
15. * 获得本地Tomcat服务器中访问JNDI内容的上下文环境
16. *
17. */
18. public Context getContext() {
19.
20. Context ctx = null;
21.
22. try {
23. ctx = (Context)(new InitialContext().lookup("java:/comp/env"));
24. } catch (Exception e) {
25.
26. }
27.
28. return ctx;
29. }
30. }

  我们可以使用ConnectionDataSource注释和新创建的JndiContextFactory类来注释JDBC控件了。

来源:bea    作者:肖菁    责编:豆豆技术应用

正在加载评论...