此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
楼主【gtliao】截止到2008-07-28 19:40:43的历史汇总数据(不包括此帖):
发帖的总数量:14                       发帖的总分数:470                      每贴平均分数:33                       
回帖的总数量:16                       得分贴总数量:3                        回帖的得分率:18%                      
结贴的总数量:13                       结贴的总分数:470                      
无满意结贴数:2                        无满意结贴分:130                      
未结的帖子数:1                        未结的总分数:0                        
结贴的百分比:92.86 %               结分的百分比:100.00%                  
无满意结贴率:15.38 %               无满意结分率:27.66 %                  
值得尊敬

解决方案 »

  1.   

    property配置文件写上server的IP地址,数据源等
    读配置文件获得jndi链接数据库
      

  2.   

    连接池自己手动配置,或者到像hibernate官方网站上下载一篇线程的连接池实现,自己改改,tomcat也自带连接池
      

  3.   

    请问楼上能给个确切地址吗?
    还有就是没人用DBCP创建连接池吗?
      

  4.   

    首先你必须将JDBC驱动放置在Tomcat的common/lib下,然后编辑conf/server.xml,在<Host>与</Host>之间加入以下的內容:       ● server.xml
    <Context path="/JSP" docBase="JSP"> 
         <Resource name="jdbc/GUESTBOOK" scope="Shareable" 
                   type="javax.sql.DataSource"/> 
         <ResourceParams name="jdbc/GUESTBOOK"> 
             <parameter> 
                 <name>factory</name> 
                 <value>
                    org.apache.commons.dbcp.BasicDataSourceFactory
                 </value> 
             </parameter>         <!-- DBCP database connection settings --> 
             <!-- JDBC URL --> 
             <parameter> 
                <name>url</name> 
                <value>jdbc:mysql://localhost/GUESTBOOK</value> 
             </parameter> 
             <parameter> 
                 <name>driverClassName</name> 
                 <value>com.mysql.jdbc.Driver</value> 
             </parameter> 
             <parameter> 
                 <name>username</name> 
                 <value>root</value> 
             </parameter> 
             <parameter> 
                 <name>password</name> 
                 <value>123456</value> 
             </parameter>         <!-- DBCP connection pooling options --> 
             <!-- 等待Connection的时间,单位ms,-1表不限制 --> 
             <parameter> 
                 <name>maxWait</name> 
                 <value>3000</value> 
             </parameter> 
             <!-- 连接池中最少的Connection数,0表不限制 --> 
             <parameter> 
                 <name>maxIdle</name> 
                 <value>10</value> 
             </parameter> 
             <!-- 连接池中最多的Connection数,0表示不限制 --> 
             <parameter> 
                 <name>maxActive</name> 
                 <value>100</value> 
             </parameter> 
         </ResourceParams> 
    </Context>
      

  5.   

    设置好后,接下来设置Web应用程序的web.xml,加入以下的內容:       ● web.xm
    <resource-ref> 
         <description>JNDI JDBC DataSource</description> 
         <res-ref-name>jdbc/GUESTBOOK</res-ref-name> 
         <res-type>javax.sql.DataSource</res-type> 
         <res-auth>Container</res-auth> 
         </resource-ref>       这样就可以使用DBCP连接池的功能了,可以这么取Connection:
    Context initContext = new InitialContext(); 
    Context envContext = (Context)initContext.lookup("java:/comp/env"); 
    DataSource ds = (DataSource)envContext.lookup("jdbc/GUESTBOOK"); 
    Connection conn = ds.getConnection();  下面这个JSP代码是个简单测试通过连接池取得连接的例子:test.jsp 
    <%@ page import="java.sql.*" %> 
    <%@ page import="javax.sql.*" %> 
    <%@ page import="javax.naming.*" %> 
    <%@ page contentType="text/html;charset=gb2312" %> 
    <%       
    try {           
    Context initContext = new InitialContext();          
     Context envContext = (Context)initContext.lookup("java:/comp/env");           
    DataSource ds = (DataSource)envContext.lookup("jdbc/GUESTBOOK");           
    Connection conn = ds.getConnection();          
      if(!conn.isClosed())             
      out.println("数据库连接成功!");          
     conn.close();       
    }       
    catch(SQLException e)
     {           
    out.println(e.toString());   
        }%>
      

  6.   

    我建议可以去下载一个叫poolman的第三方数据库连接池
    它不用设置那么多文件
    先下载一个poolman的jar文件
    接下来:
    把jar包放到 /项目名称/web-inf/lib 下,poolman带的jar包很多,其中required就5个. poolman.xml是连接池的配置文件, 放到 /项目名称/web-inf/classes 下给一个最简单必要的配置文件内容<?xml version="1.0" encoding="UTF-8"?> 
    <poolman> 
    <management-mode>local</management-mode><datasource>数据库的名字 
    <dbname>SIPO</dbname> 
    jndi的名字 
    <jndiName>sipo</jndiName> 
    驱动字符串 
    <driver>com.microsoft.jdbc.sqlserver.SQLServerDriver</driver> 
    连接字符串 <url>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=SIPO</url> 
    数据库登录用户名 
    <username>sipo</username> 
    数据库登录密码 
    <password>sipo</password> 
    日志文件的文件名(含路径) 
    <logFile>sipo.log</logFile> 
    是否可用预执行 
    <poolPreparedStatements>true</poolPreparedStatements> 
    初始化后连接个数 
    <initialConnections>5</initialConnections> 
    最小连接个数 
    <minimumSize>5</minimumSize> 
    最大连接个数 
    <maximumSize>200</maximumSize> 
    达到最大连接个数后是否可以再创建新的连接 
    <maximumSoft>true</maximumSoft> 
    XX秒后destory连接 
    <connectionTimeout>600</connectionTimeout> 
    在返回连接池前用户可以保持XX秒 
    <userTimeout>12</userTimeout> 
    </datasource> 
    </poolman>最后在java中进行测试:
    在你的数据库基类里面这样写就可以了import com.codestudio.sql.PoolMan; 
    import javax.sql.DataSource; 
    import java.sql.SQLException;public class DbCtrl { 
    private Connection con; 
    private Statement st; 
    public void getConnection() throws ClassNotFoundException, 
    SQLException { 
    con = null; 
    DataSource ds = PoolMan.findDataSource("sipo"); 
    con = ds.getConnection(); 
    st = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, 
    ResultSet.CONCUR_UPDATABLE); 

    }
      

  7.   

    <bean id="dataSource">
    class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName" value="jndi名称" />
    </bean>
      

  8.   

    可以在服务器启动时自动创建. 1. 如使用服务器的连接池, 可直接在服务器上配置, 大多数web服务器都能支持连接池. 如11楼说描述的那样
    2. 如使用自定义连接池, 可以自己实现服务器启动的接口. 只要将这个接口放入服务器启动的配置中, 启动时就会调用你的过程初始化你的连接池了. 这种方法比较通用, 除了连接池外, 你做还能装载配置, 初始化环境等工作. 只是不同的服务器的接口不一样
    3. 无论使用什么方式使用连接池, 建议你将连接池的读取与你的代码分离, 程序代码会更简洁而且程序结构调整也会更方便
      

  9.   

    用proxool这个吧,很方便的.很好用.你要的话,我发给你.把邮箱给我.记得好用,把分都给我,哈哈.