可以建一个连接池工厂。可以借用jbuilder生成,然后仔细读生成代码,既清楚,又明白

解决方案 »

  1.   

    没怎么用过JNDI,,不过帮楼主顶吧
      

  2.   

    你把
           try
            {
                String jndiName = "jdbc/Northwind";
                Context initCtx = new InitialContext();
                Context ctx = (Context) initCtx.lookup("java:comp/env");
                Object obj = (Object) ctx.lookup(jndiName);
                javax.sql.DataSource ds = (javax.sql.DataSource)obj;
                //Connection conn= ds.getConnection();
            }
    改成
           try
            {
                String jndiName = "jdbc/Northwind";
               InitialContext  ctx = new InitialContext();
               DataSource ds = (DataSource) ctx.lookup("java:/comp/env/"+jndiName); //tomcat 写法
            }
      

  3.   

    对应的tomcat里的jndi配置:
    <Resource name="szf" auth="Container" type="javax.sql.DataSource"/>  
            <ResourceParams name="szf"> 
    <parameter> 
            <name>factory</name>     <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>   </parameter>   <parameter>     <name>driverClassName</name>     <value>oracle.jdbc.driver.OracleDriver</value>   </parameter>   <parameter>     <name>url</name>     <value>jdbc:oracle:thin:@192.168.70.111:1521:mydb</value>   </parameter>   <parameter>     <name>username</name>     <value>zgsx</value>   </parameter>   <parameter>     <name>password</name>     <value>zgsx</value>   </parameter>   <parameter>     <name>maxActive</name>     <value>20</value>   </parameter>   <parameter>     <name>maxIdle</name>     <value>10</value>   </parameter>   <parameter>     <name>maxWait</name>     <value>-1</value>   </parameter> </ResourceParams> 
      

  4.   

    junuylia(juany):
        我这里是希望能用Tomcat生成的连接池来完成工作,看别人都在用,可是我一直没有配置成功过。还是要谢谢给的指点,有时间一定用JB生成一个来研究一下。mazekui(悠悠春竹):
        我按照你所述修改了代码,还是同样的编译错误。当然,我还没有按照你的第二个帖子配置文件。时间不早了,我明天测试后,把结果告诉你!谢谢。