tomcat配置数据源

来源:互联网 发布:关于网络推广 编辑:程序博客网 时间:2024/04/29 18:58

方法1:后台修改配置文件

修改Tomcat_Home/conf/server.xml,在GlobalNamingResources中加入:


Xml代码

   1. <Resource name="jdbc/DataSource" auth="Container"
   2. type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
   3. url="jdbc:oracle:thin:@127.0.0.1:1521:orcl"
   4. username="user" password="password" maxActive="20" maxIdle="10"
   5. maxWait="-1"/>

 <Resource name="jdbc/DataSource" auth="Container"
  type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
  url="jdbc:oracle:thin:@127.0.0.1:1521:orcl"
  username="user" password="password" maxActive="20" maxIdle="10"
  maxWait="-1"/>

 再在Context中加入引用:

Xml代码

   1. <ResourceLink name="jdbc/DataSource" global="jdbc/DataSource" type="javax.sql.DataSource"/>

 <ResourceLink name="jdbc/DataSource" global="jdbc/DataSource" type="javax.sql.DataSource"/>

 如果不加,则在使用的时候会出现:Cannot create JDBC driver of class '' for connect URL 'null' 错误

 

在web.xml定义:

Xml代码

   1. <resource-ref>
   2. <description>popuserDataSource</description>
   3. <res-ref-name>jdbc/DataSource</res-ref-name>
   4. <res-type>javax.sql.DataSource</res-type>
   5. <res-auth>Container</res-auth>
   6. </resource-ref>

    <resource-ref>
        <description>popuserDataSource</description>
        <res-ref-name>jdbc/DataSource</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
    </resource-ref>

 在Spring中引用:

Xml代码

   1. <bean id="DataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
   2. <property name="jndiName" value="java:comp/env/jdbc/DataSource"/>
   3. <property name="expectedType" value="javax.sql.DataSource"/>
   4. </bean>

  <bean id="DataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
        <property name="jndiName" value="java:comp/env/jdbc/DataSource"/>
        <property name="expectedType" value="javax.sql.DataSource"/>
    </bean>

 完成。


方法2:

TOMCAT 4.1 与TOMCAT 5.5以上版本(我只用过5.5 和6.0)配置数据源是有区别的小弟在此写哈
(记得将驱动包放到common\lib文件夹下)
TOMCAT 4.1是将Resoucre配置参数都看做是元素来配置的
而TOMCATE5.5以后都是把参数当作Resource元素的属性来配置的,
还要注意的4.1中 的
<factory>元素在5.5以后就没有了。


》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

来看看4.1是如何配置的 在TOMCAT 目录conf文件夹下找到server.xml再找到</host>元素将下面的代码写到
</HOST>元素前面即可:


  <Context path="/mas" docBase="
D:/web/voteTest/WebRoot" debug="0"
                 reloadable="true" crossContext="true">
       <Logger className="org.apache.catalina.logger.FileLogger"
                          timestamp="true"/>
      <Resource name="jdbc/mas" auth="Container" type="javax.sql.DataSource"/>       
       <ResourceParams name="jdbc/mas">
        <parameter>//在5.5以后就没有这个元素了如果存在就会报错
          <name>factory</name>
          <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
        </parameter>

         <parameter>
          <name>testonborrow </name>
          <value>true</value>
        </parameter>
         <parameter>
          <name>testonreturn  </name>
          <value>true</value>
        </parameter>
         <parameter>
          <name>testwhileidle</name>
          <value>true</value>
        </parameter>
        <parameter>
          <name>removeAbandoned</name>
          <value>true</value>
        </parameter>
        <parameter>
          <name>removeAbandonedTimeout</name>
          <value>100</value>
        </parameter>                           
        <parameter>
          <name>maxActive</name>
          <value>100</value>
        </parameter>
        <parameter>
          <name>maxIdle</name>
          <value>30</value>
        </parameter>
        <parameter>
        <name>maxWait</name>
        <value>10000</value>
        </parameter>           
        <parameter>
         <name>username</name>
         <value>wsq</value>
        </parameter>
        <parameter>
         <name>password</name>
         <value>wsq</value>
        </parameter>
       <parameter>
       <name>driverClassName</name>
       <value>oracle.jdbc.driver.OracleDriver</value>
       </parameter>
        <parameter>
          <name>url</name>
          <value>jdbc:oracle:thin:@192.168.3.177:1521:masenv</value>
        </parameter>
       </ResourceParams>             
       </Context>
    

》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

tomcat 6.0配置数据源

  方法1:
直接在tomcat server.xml中配置将下面这段话写在serverl.xml 中</host>之前

<Context path="/mas" docBase="D:/web/voteTest/WebRoot" debug="0"  reloadable="true" crossContext="true">   
         <Resource name="jdbc/mas"
             auth="Container"
             type="javax.sql.DataSource"     
             driverClassName="oracle.jdbc.driver.OracleDriver"
             url="jdbc:oracle:thin:@192.168.3.177:1521:masenv"        
             username="wsq" password="wsq" 
             maxIdle="20"     maxWait="5000"   
             maxActive="100"  removeAbandoned="true"
             removeAbandonedTimeout="60" logAbandoned="true"
          />
     </Context>

解释一下:1.path是指定访问该web应用的URL入口;

         2.docBase指定web应用的文件路径,可以是绝对路径,也可以是相对于Host的appBase属性的相对路径;

         3.type指定Resource所属的JAVA类名

         4.maxActive是DBCP中处于活动状态的数据库连接的最大数目,取0表示不受限制

         5.maxIdle是DBCP中处于空闲状态的数据库连接的最大数目,取0表示不受限制

         6.maxWait是是DBCP中的数据库连接处于空闲状态的最长时间(以毫秒为单位)取0表示无限期等待

         7.username是数据库登陆名

         8.password是数据库登陆口令

         9.driverClassName是只定数据库的jdbc驱动程序

        10.url是指定连接数据库的URL,masenv是我的数据库名。



   方法2 :

如果你是想将你的TOMCAT绑定到你IDE(eclipse)上启动的话 可以采用这个方法

方法如下 :

  在你项目WebRoot 文件下面搞个META-INF文件夹在建个context.xml文件 在此XML文件里配置数据源即可。内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/mas" docBase="D:/web/voteTest/WebRoot" debug="0"  reloadable="true" crossContext="true">   
   <Resource name="jdbc/mas"  auth="Container" type="javax.sql.DataSource"     
              driverClassName="oracle.jdbc.driver.OracleDriver"
              url="jdbc:oracle:thin:@192.168.3.177:1521:masenv"        
              username="wsq" password="wsq"   maxIdle="20" maxWait="5000"   
              maxActive="100" removeAbandoned="true"
              removeAbandonedTimeout="60" logAbandoned="true"/>
</Context>

说明同上

获得数据源方法

/**
     * 初始化数据库连接
     *
     * @throws SQLException
     */
    private static void loadDataSource()
    throws SQLException {
        try {
            if (dataSource == null) {
                 Context context = new InitialContext();
                 DataSource dataSource = (DataSource)context.lookup("java:comp/env/jdbc/mas");

            }              
        } catch (Exception e) {
           
            throw new SQLException("数据库命名服务错误:" + e.getMessage());
        }
    }    

/**

     * 取数据库连接
     *
     * @return Connection
     *
     * @throws SQLException
     */
    public static Connection getConnection() {       
        Connection conn = null;
        try {
            loadDataSource();
            Connection   conn =  dataSource.getConnection();

        } catch (SQLException sqle) {
           
            throw new RuntimeException(sqle);
        }   
        return conn;
    }



原创粉丝点击