JSP中数据源的绑定方法(Resin配置文件中和代码动态配置的方法)

原创 2006年06月05日 10:55:00

数据源的绑定方法

1、一种方法是在服务器的配置文件中配置数据源

Resin中的配置

<database>

<jndi-name>jdbc/sqlserver</jndi-name>

<driver type="com.microsoft.jdbc.sqlserver.SQLServerDriver">

<url>jdbc:microsoft:sqlserver://202.207.152.212:1433;DatabaseName=nxtcbf-yc</url>

<user>sa</user>

<password>admin</password>

</driver>

</database>

<jndi-name>是配置的数据源在JNDI中的名字,可以使用Context.lookup(“java:com/env/jdbc/sqlserver”);来查找到。

<driver>用于配置驱动程序的类型。

<url>连接串,包括主机的ip地址、段口号等,分号后可以带参数,具体使用可以参考Microsoft SQL Server 2000 Driver for JDBC的帮助文档。

采用以上的方法对于服务器的配置不是太灵活,所以考虑采用第二种方法来动态配置连接池。

2、第二种是动态配置自定义的数据源绑定

这种方法虽然比内建的数据源绑定复杂,但是我们对于获取连接的方法有了全面的控制。而且,这样配置可以使我们很灵活的改变数据库连接信息,当我们要改变他们的时候只需修改少部分代码和配置文件。

       我所制作的动态数据源绑定程序的继承关系如图E.1所示:

E.1 SqlserverConfig类的继承关系

各个类的方法

Config

void init(ServletContext sctxString xmlFile)

初始化,从外部的Xml文件读取数据源配置,并把各个元素存储在一个Element对象中

String getElementText(Element parentString name)

Element对象中读取相关名字的值。

DataBaseSource

void init(ServletContext sctxString xmlFile)

初始化父类,并读取相关配置信息到内存中的特定变量。

DataSource getDataSource()

返回一个数据源对象。用于他的子类取得配置好的数据源,如果没有配置好数据源将会返回空值。

SqlserverConfig

init(ServletContext sctxString xmlFile)

初始化父类,并读取特定数据库的配置信息到特定内存变量。

 

有了数据源配置类,还需要配置web应用程序的部署描述符中给出配置文件的位置,和数据源在JNDI中绑定的名称。我用如下的配置来标示两者。

<context-param>

    <param-name>DataSourceConfigXml</param-name>

    <param-value>/xmls/DataSource-Config.xml</param-value>

  </context-param>

  <context-param>

    <param-name>DataSourceConfig</param-name>

    <param-value>admin.config.SqlserverConfig</param-value>

  </context-param>

第一个部署描述符的value属性给出数据源配置文件的位置。

第二个给出数据源在JNDI中绑定的名称。

 

数据源配置文件的配置要和配置类中定义的几个全局常量的值相对应,DataSource-Config.xml的部分代码如下:

<?xml version="1.0" encoding="UTF-8"?>

<DataSource>

    <ServerName>FZ18</ServerName>

    <NetAddress>127.0.0.1</NetAddress>

    <ServerPort>1433</ServerPort>

    <DatabaseName>pubs</DatabaseName>

    <DatabaseUser>sa</DatabaseUser>

<DatabasePassword>admin</DatabasePassword>

    <SelectMethod>cursor</SelectMethod>

</DataSource>

注意:

ServerName必须指定而且一定要和你的sqlserver实例的名字相匹配

<SelectMethod>默认是direct,有时候需要指定为cursor不然会出现错误。

要实现特定数据源的动态配置,还需要一个自动绑定他的监听器,我定义了一个ServletContextListener,在服务器启动的时候就能自动配置数据源了。

具体实现如下:

    DataSourceConfig dscfg = (DataSourceConfig) cls.newInstance();

    dscfg.init(sctxsctx.getInitParameter("DataSourceConfigXml"));

    InitialContext ctx = new InitialContext();

    JNDI_NAME=sctx.getInitParameter("DataSourceConfig");

ctx.bind(JNDI_NAMEdscfg.getDataSource());

 

我们可以把绑定的名字放在ServletContext对象中,以便随时使用。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Spring配置文件中的数据源的几种连接

在Spring配置文件中数据源的连接大致有三种: 1、Spring自带的连接 2、apache的dbcp插件连接 3、c3p0的插件连接 下面一一的解释其配置文件的参数以及区别: 1、Spr...

Spring配置文件所有类型的数据源dataSource

--> --> -->            -->

如何使用Spring配置文件内的数据源发布报表

J2EE开发中配置数据库连接池的方式有很多种,多数情况下只要在应用服务器上配置数据库连接池就能满足需求,但是也有不少客户会使用一些中间件配置数据库连接池的方式,比如Spring,此时若采取通常的配置方...
  • RQlyc
  • RQlyc
  • 2016-12-11 11:34
  • 269

Spring的数据源引用问题,拆分配置文件

==================================================== 0.借助hibernate的数据源使用,即引入hibernate.cfg.xml文件 注意:此...

【笔记】Spring配置文件中注册三种数据源及从属性文件中读取DB连接四要素

Spring配置文件中注册三种数据源及从属性文件中读取DB连接四要素

通过环境变量设置WEB项目数据源(Spring)及其项目配置文件路径,动态更新数据源及项目配置

项目开发中,打包项目WAR后有时会遇到需要更新项目中相关配置的情况。例如,测试环境的数据源在打包发布到生产环境时则需要更改相关数据源配置,现在大部分做法是在项目根目录下建立properties文件,在...

通过环境变量设置WEB项目数据源(Spring)及其项目配置文件路径,动态更新数据源及项目配置

项目开发中,打包项目WAR后有时会遇到需要更新项目中相关配置的情况。例如,测试环境的数据源在打包发布到生产环境时则需要更改相关数据源配置,现在大部分做法是在项目根目录下建立properties文件,在...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)