我做一个JSP程序,想用TOMCAT中自带的连接池,但是本人从来没有用到这个东西,里面要配置的东西确实很多,看了很多资料之后还是不明白,其中有一个就是要不要建立类似DNS的数据源,我看资料里面都没有提到,只是<value>jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=test</value>
用了上面一句,现在不明白的是如果我建了一个SQL SERVER 数据库的话,那么我是否应该放到一个固定的地方,不然的话等怎么找的到,还有那个端口要怎么设?

解决方案 »

  1.   

    Tomcat文档里有关于JDBC DataSources的一节,可以参照进行配置。
      

  2.   

    只要帮我解决一下是不是在TOMCAT连接池中不需要类似于ODBC之类的DNS,还有我看到别人的数据库里面有设端口如下面端口是1433, <value>jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=test</value>不知道要怎么设这个端口
      

  3.   

    要在tomcat的system.xml和你WEB应用的web.xml两个文件中同进行配置,在system.xml找到
            <!--
              <Context path="" docBase="ROOT" debug="0">
            -->将下面的信息放到之后,在根据自己的实际情况做一些修改
    <Context path="/up" docBase="/up" debug="1" reloadable="true" >
      <Resource name="jdbc/mscn" type="javax.sql.DataSource"/>
      <ResourceParams name="jdbc/mscn">
        <parameter>
          <name>factory</name>
          <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
        </parameter>
        <parameter>
          <name>url</name>
          <value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=badataaccess</value>
        </parameter>
        <parameter>
          <name>driverClassName</name>
          <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
        </parameter>
        <parameter>
          <name>username</name>
          <value>sa</value>
        </parameter>
        <parameter>
          <name>password</name>
          <value>654321</value>
        </parameter>
        <parameter>
          <name>maxActive</name>
          <value>20</value>
        </parameter>
        <parameter>
          <name>maxWait</name>
          <value>-1</value>
        </parameter>
        <parameter>
          <name>maxIdle</name>
          <value>0</value>
        </parameter>
      </ResourceParams>
    </Context>将下面的内容放到你WEB应用下WEB.xml文件中
      <resource-ref>
        <description>DB Connection</description>
        <res-ref-name>jdbc/mscn</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
      </resource-ref>引用连接方法
    import java.sql.*;
    import javax.sql.*;
    import javax.naming.*;public class linkDatabase {
        public linkDatabase() {}
        public static Connection createLink() throws NamingException, SQLException 
        {
            Context ctx=null;
            DataSource ds=null;
            ctx = new InitialContext();
            ds = (DataSource)ctx.lookup("java:comp/env/jdbc/mscn");
            return ds.getConnection();
        }
    }
    将上面的文件做成类,反回的就是数据库连接,调用方法如下:
    Stirng sql="select * from XXXXX";
    try{
       cn = linkDatabase.createLink();
       if(cn != null)
       {
      Statement stmt = cn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
      rs = stmt.executeQuery(sql);
               .....
               .....
       }
    }
    catch(SQLException e)
    {
       out.print(e);
    }
    终于搞完了,写了这么多20分少点,哈哈哈
      

  4.   

    这个是jdbc连接的。如果你要这样用,你就要把sql server的驱动拷到你的tomcat中,也就是那三个以ms开头的jar文件。1433是sql server连接默认端口
      

  5.   

    呵呵,一般的都用 jdbc 连接,再就是 连接池了吧,不用dns吧
      

  6.   

    要在tomcat的system.xml和你WEB应用的web.xml两个文件中同进行配置,在system.xml找到
            <!--
              <Context path="" docBase="ROOT" debug="0">
            -->
    上面那个是不是SERVER.XML,我好像找不到 system.xml?我的疑问是你这里面  <parameter>
          <name>url</name>
          <value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=badataaccess</value>
        </parameter>中的数据库badataaccess要放在哪里啊,我是不是随便放一个地方他都能找的到这个数据库文件?
      

  7.   

    把那句话改为:
    <value>jdbc:jtds:sqlserver://localhost:1433;DatabaseName=badataaccess</value>
      

  8.   

    badataaccess是在mssql2000中的数据库,改成你自己的,和数据库文件放的位置无关
    system.xml到C:\Tomcat5.0\conf 下面去找