小弟我正在学JSP,希望高手指点~!

解决方案 »

  1.   

    管理数据库连接的一个池.
    已经有很多开源实现. 
    apache的 dbcp
    或者c3p0
      

  2.   

    我们现在学的是apache的,应该怎么做?
      

  3.   

    http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/doc/BasicDataSourceExample.java?view=up
      

  4.   

    下面我把配置过程分成三个步骤来完成: 
    第一步:在你安装TomCat的目录下找到context.xml配置文件。(例如:D:\Tomcat 6.0\conf\context.xml)然后打开context.xml,在标签<context></<context>之间加入以下内容:(为了大家容易理解,我加了较详细的注释) 
    <Resource 
    name="jdbc/course" //数据源名称(自定义)到时候要用到的,所以最好起 
    //个有含义的名字,例如我这个数据源名字,jdbc表示与//数据库连接有关的,而course是我这个项目的名字。 
    auth="Container" //这个默认就好了 
    type="javax.sql.DataSource" //这个也默认就好了 
                  driverClassName="com.mysql.jdbc.Driver"//这里用到的是mysql数据库的驱动包。 
                  url="jdbc:mysql://localhost/course" //这里是连接到mysql数据库的url,其中url="jdbc:mysql://localhost/"是固定的,而course是我这个 //项目的数据库名称,所以这里改为你们的数据库名称就好了。 
                  username="root"//登陆数据库的用户名  
         password="birchhua" //登陆数据库的密码 
         maxIdle="5"//这个也默认就好了 
                  maxWait="5000"//这个也默认就好了 
                  maxActive="10"/>//这个也默认就好了 第二步:在你的项目WEB-INF目录下找到web.xml配置文件,然后打开,在标签<web-app></web-app>之间加入以下内容: 
    <resource-ref> 
    <description>DB Connection</description> 
    <res-ref-name>jdbc/course</res-ref-name> 
    <res-type>javax.sql.DataSource</res-type> 
    <res-auth>Container</res-auth> 
    </resource-ref> 
    其中:DB Connection 是自定义的,而jdbc/course是对应上面<Resource></Resource>标签中的name属性的值,还有 javax.sql.DataSource就对应type属性的值,而最后Container对应的是auth属性的值。 第三步:上网下载一个叫mysql-connector-java-3.1.10-bin.jar的jar包,然后将该jar包放到TomCat安装目录下的lib文件夹里。(例如:D:\Tomcat 6.0\lib\mysql-connector-java-3.1.10-bin.jar)完成这三步就配置好了TomCat数据源了。 下面根据刚才配置好的数据源做一个简单获取数据库连接的测试,代码如下: 
    Java代码 
    1. package com.lm.dbmanager;  
    2.   
    3. import java.sql.Connection;  
    4. import java.sql.PreparedStatement;  
    5. import java.sql.ResultSet;  
    6. import java.sql.SQLException;  
    7.   
    8. import javax.naming.InitialContext;  
    9. import javax.naming.NamingException;  
    10. import javax.sql.DataSource;  
    11.   
    12. public class GetConnectionTest {  
    13.     public static void main(String[] args) {  
    14.   
    15.         InitialContext ctx;  
    16.         PreparedStatement pstmt = null;  
    17.         Connection conn = null;  
    18.         String sql = "select * from course";  
    19.         try {  
    20.             ctx = new InitialContext();  
    21.             /* 
    22.              * 在下面的字符串"java:comp/env/jdbc/course"中,*"java:comp/env/"是不变的, 
    23.              * 而"jdbc/course"大家应该还记得自己之前起的数据源名称吧! 
    24.              */  
    25.             DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/course");  
    26.             conn = ds.getConnection();  
    27.             pstmt = conn.prepareStatement(sql);  
    28.             ResultSet rs = pstmt.executeQuery();  
    29.             System.out.println("课程编号  " + "  课程名");  
    30.             System.out.println("--------------------");  
    31.             while(rs.next()) {  
    32.                 System.out.println("| "+rs.getInt(1) +"  |  " +rs.getString(2) + "  |");  
    33.                 System.out.println("--------------------");  
    34.             }  
    35.         } catch (NamingException e) {  
    36.             e.printStackTrace();  
    37.         } catch (SQLException e) {  
    38.             e.printStackTrace();  
    39.         }  
    40.           
    41.     }  
    42. }   这个东西我试过的  可以使用。要注意的就是有几个地方你要修改成你自己的数据库名字