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对象中,以便随时使用。

resin 4.0数据源的配置

一、配置多个数据源,多个项目共享这些数据源,也就是这些数据源配置在     之内,而在   之外,这样所有的这些项目都能访问这些数据源 二、一个项目配置多个数据源,也就是将数据源的配置放在 之内...
  • QH_JAVA
  • QH_JAVA
  • 2015年07月17日 23:44
  • 2671

echart图表控件配置入门(常用图表数据动态绑定)

现在分别对折线图、柱状图、饼图、中国地图四类图表的数据绑定进行详细的介绍。echarts中其它的图表方法都差不多,只要了解官方的demo,按照指定的数据结构进行解析都能很方便的得到想要的结果; ...
  • football98
  • football98
  • 2016年10月10日 15:30
  • 3220

Struts2中动态方法调用有三种方式

动态方法调用 在Struts2中动态方法调用有三种方式,动态方法调用就是为了解决一个Action对应多个请求的处理,以免Action太多 第一种方式:指定method属性 这种方式我们前面已经用到过...
  • bigtree_3721
  • bigtree_3721
  • 2016年03月13日 18:46
  • 2242

spring,myibatis,配置文件,数据源,web工程

  • 2014年06月16日 14:56
  • 4KB
  • 下载

birt从配置文件读取数据源

  • 2009年10月28日 10:01
  • 51KB
  • 下载

在VB程序中自动配置ODBC数据源的方法

  • 2014年03月19日 13:16
  • 131KB
  • 下载

spring+mybatis 数据源读取不到配置文件的值

最近在搭建maven + springmvc + spring + mybatis + mysql 过程中遇到一个问题(tomcat启动的时候报异常            java.lang.Ill...
  • wzlwlj
  • wzlwlj
  • 2016年07月28日 17:20
  • 4425

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

==================================================== 0.借助hibernate的数据源使用,即引入hibernate.cfg.xml文件 注意:此...
  • lixiao1048
  • lixiao1048
  • 2016年06月24日 09:00
  • 3334

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

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

Spring-boot中利用外部配置文件生成数据源

Spring data 提供了一种很强大的JPA(主要是不需要给方法写implements) Spring boot则提供了方便的自动配置。 netgloo 的例子 如何只利用一个单一的配置文件 a...
  • TCXP_for_wife
  • TCXP_for_wife
  • 2016年04月10日 21:35
  • 8007
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JSP中数据源的绑定方法(Resin配置文件中和代码动态配置的方法)
举报原因:
原因补充:

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