爲tomcat動態添加jndi數據源信息

咱們在開發項目的時候,總要和數據庫打交道,如何獲取數據源,以什麼樣的方式來獲取,成爲了咱們即簡單又熟悉並且不得不注意的一個問題。java

那麼在這裏我說三種獲取數據源的經常使用方式:

1、經過配置文件來獲取
  1. 首先在項目的classPath下面,創建一個配置文件,如jdbc.properties。
  2. 經過最原始的方式,解析這個配置文件,而後讀取配置信息,再封裝jdbc信息,從而獲得數據源。
  3. 使用spring;經過spring去創建dataSource Bean。這個dataSource Bean裏的信息一樣來本身於你的配置文件。注意要在配置文件中加入:
<context:property-placeholder location="classpath:jdbc.properties" />
引入靜態文件

     4.Spring中的dataSource bean大體以下:mysql

<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.配置文件的內容大體以下:spring

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/springsecurity?allowMultiQueries=true
username=root
password=123456
jdbc配置文件
2、經過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是數據庫密碼。sql

  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」點的說明:apache

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

3、在MATA-INFO 文件下加入Content.xml方式,讓項目在部署時動態爲tomcat加上jndi數據源

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

         文件內容以下:ide

<?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中。url

相關文章
相關標籤/搜索