为tomcat动态添加jndi数据源信息

系统 1690 0

我们在开发项目的时候,总要和数据库打交道,如何获取数据源,以什么样的方式来获取,成为了我们即简单又熟悉而且不得不注意的一个问题。

那么在这里我说三种获取数据源的常用方式:

一、通过配置文件来获取
  1. 首先在项目的classPath下面,建立一个配置文件,如jdbc.properties。
  2. 通过最原始的方式,解析这个配置文件,然后读取配置信息,再封装jdbc信息,从而得到数据源。
  3. 使用spring;通过spring去建立dataSource Bean。这个dataSource Bean里的信息同样来自己于你的配置文件。注意要在配置文件中加入:
        
          <
        
        
          context:property-placeholder 
        
        
          location
        
        
          ="classpath:jdbc.properties"
        
        
          />
        
      
引入静态文件

     4.Spring中的dataSource bean大致如下:

        
          <
        
        
          bean 
        
        
          id
        
        
          ="dataSource"
        
        
           class
        
        
          ="org.apache.commons.dbcp.BasicDataSource"
        
        
          

        destroy-method
        
        
          ="close"
        
        
          >
        
        
          <
        
        
          property 
        
        
          name
        
        
          ="driverClassName"
        
        
           value
        
        
          ="${driverClassName}"
        
        
          />
        
        
          <
        
        
          property 
        
        
          name
        
        
          ="url"
        
        
           value
        
        
          ="${url}"
        
        
          />
        
        
          <
        
        
          property 
        
        
          name
        
        
          ="username"
        
        
           value
        
        
          ="${username}"
        
        
          />
        
        
          <
        
        
          property 
        
        
          name
        
        
          ="password"
        
        
           value
        
        
          ="${password}"
        
        
          />
        
        
          <
        
        
          property 
        
        
          name
        
        
          ="maxActive"
        
        
           value
        
        
          ="20"
        
        
          />
        
        
          <
        
        
          property 
        
        
          name
        
        
          ="initialSize"
        
        
           value
        
        
          ="1"
        
        
          />
        
        
          <
        
        
          property 
        
        
          name
        
        
          ="maxWait"
        
        
           value
        
        
          ="60000"
        
        
          />
        
        
          <
        
        
          property 
        
        
          name
        
        
          ="maxIdle"
        
        
           value
        
        
          ="20"
        
        
          />
        
        
          <
        
        
          property 
        
        
          name
        
        
          ="minIdle"
        
        
           value
        
        
          ="3"
        
        
          />
        
        
          <
        
        
          property 
        
        
          name
        
        
          ="removeAbandoned"
        
        
           value
        
        
          ="true"
        
        
          />
        
        
          <
        
        
          property 
        
        
          name
        
        
          ="removeAbandonedTimeout"
        
        
           value
        
        
          ="180"
        
        
          />
        
        
          <
        
        
          property 
        
        
          name
        
        
          ="connectionProperties"
        
        
           value
        
        
          ="clientEncoding=UTF-8"
        
        
          />
        
        
          </
        
        
          bean
        
        
          >
        
      
dataSource bean

   5.配置文件的内容大致如下:

        driverClassName=
        
          com.mysql.jdbc.Driver

url
        
        =jdbc:mysql:
        
          //
        
        
          localhost:3306/springsecurity?allowMultiQueries=true
        
        

username=
        
          root

password
        
        =123456
      
jdbc配置文件
二、通过jndi来获取
  1. 说明:通过jndi的方式来获取,通常是在使用spring的情况下使用,当然也可以是其它方式。
  2. 首先,在tomcat的config目录下的context.xml文件中,加入如下语句:
        <Resource driverClassName="com.mysql.jdbc.Driver" maxActive="120" maxWait="5000" maxldle="10" name="app" type="javax.sql.DataSource" url="jdbc:mysql://127.0.0.1:3306/goldApp?allowMultiQueries=true" username="root" password="123456"/>
      
jndi Resoure

  3.对于第”2”点的说明:name表示为jndi的名字, driverClassName是使用的驱动类,url当然就是连接相关信息,username是登录数据库的用户名,password是数据库密码。

  4.执行好第”2”步过后,要做的事情:在你的spring配置文件中,加入引入jndi的bean,如下:

        <bean id="dataSource" 
        
          class
        
        ="org.springframework.jndi.JndiObjectFactoryBean">  

        <property name="jndiName">  

            <value>java:comp/env/app</value>  

        </property>  

</bean>
      
jndi spring Bean

  5.对于第“4”点的说明:

    在value中java:comp/ env /是前缀,app帮是content.xml中配置的jndi的名字。

三、在MATA-INFO 文件下加入Content.xml方式,让项目在部署时动态为tomcat加上jndi数据源

  1.首先,在MATA-INFO下建文件: Context.xml

         文件内容如下:

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

        
        
        
          driverClassName
        
        
          ="com.mysql.jdbc.Driver"
        
        
           

        maxActive
        
        
          ="120"
        
        
           

        maxWait
        
        
          ="5000"
        
        
           

        maxldle
        
        
          ="10"
        
        
           

        name
        
        
          ="app"
        
        
           

        type
        
        
          ="javax.sql.DataSource"
        
        
           

        url
        
        
          ="jdbc:mysql://192.168.10.105:3306/springsecurity?allowMultiQueries=true"
        
        
           

        username
        
        
          ="root"
        
        
           

        password
        
        
          ="123456"
        
        
          />
        
        
          </
        
        
          Context
        
        
          >
        
      
MATA-INFO Context内容

  2.说明:在mata-info下加入此文件后,然后在spring中采用使用jndi的方式引用数据库即可。这种的好处是。它在你发布项目的时候,会动态为你在tomcat的配置文件中加上数据源信息,所以就不用我们每次都手动到content.xml文件加入配置了。注意:动态加的数据源信息在servce.xml中。

 

为tomcat动态添加jndi数据源信息


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论