1。用java编写一段小程序:
    S(n)=1+1+2+3+5+8+13+…………+n.
2。大家能给我介绍一下,连接池吗。以及做连接池所需要的配置,急用,谢谢大家
解决问题,立刻给分了啊!

解决方案 »

  1.   

    public class Sn
    {
    public static void main(String[] args)
    {
    int n0=1,n1=1,n2;
    System.out.print(n0+" "+n1+" ");

    for(int i=0;i<10;i++)
    {
    n2=n1+n0;
    System.out.print(n2+" ");
    n0=n1;
    n1=n2;
    }
    System.out.println();
    }
    }
      

  2.   

    数据库连接池:
        在连接池初始化时(或在构造函数中),生成初始个数(自定义)的数据库连接;
        客户端取得连接;{当连接不够时,自动新生成指定个数的数据库连接,并将连接放入池中}
        在客户端使用完连接后,主动调用返还连接的方法将用过的连接归还到连接池中.设置与此连接有关的一系列的标志,使其为初始状态.连接池的使用可节省大量的时间(频繁地生成和释放数据库连接的时间),以提高系统系统.
    一、Tomcat简介
    Tomcat是Apache Jakarta的子项目之一,是Sun公司推荐的JSP、Servlet容器。作为一款优秀的应用服务器,Tomcat提供了数据库连接池、SSL、Proxy等许多通用组件功能,其中连接池是4.0以上版本的新增功能,应用非常广泛。二、Tomcat4的连接池
    Tomcat4的开发可分为两个阶段,4.0.6是第一阶段最推荐的release版本,内置的数据库连接池为Tyrex 0.9.7.0,Tyrex由exolab.org开发,相关信息可以参见www. exolab.org。之后,Tomcat的开发者在4.0.x的基础上对Tomcat进行了重构,重构后的release版本推荐4.1.18,这时内置的连接池改为DBCP,DBCP也是由Jakarta Commons的一个子项目。
    接下来,将分别以4.0.6和4.1.18为例介绍这两种连接池对Oracle8.1.7的配置。三、对Tomcat4.0.6的Tyrex配置为方便起见,将连接池置于ROOT下,JNDI名设为jdbc/OracleDB,数据库服务器IP为192.168.0.50,SID为oradb,操作系统Win2000,jdk1.3.1,配置步骤如下。第一步:配置server.xml在server.xml文件中找到
    <!-- Tomcat Root Context --><!-- <Context path="" docBase="ROOT" debug="0"/>-->
    将其改为
    <!-- Tomcat Root Context --> <Context path="" docBase="ROOT" debug="0"> <Resource name="jdbc/OracleDB" auth="Container" type="javax.sql.DataSource"/> <ResourceParams name="jdbc/OracleDB"> <parameter> <name>user</name> <value>holen</value> </parameter> <parameter> <name>password</name> <value>holen</value> </parameter> <parameter> <name>driverClassName</name> <value>oracle.jdbc.driver.OracleDriver</value> </parameter> <parameter> <name>driverName</name> <value>jdbc:oracle:thin:@192.168.0.50:1521:oradb</value> </parameter> </ResourceParams> </Context>说明:将ROOT的Context从注释中移出来,并定义Resource项,如下:<Resource name="jdbc/OracleDB" auth="Container" type="javax.sql.DataSource"/>Resource项(即连接池的DataSource对象),有3个属性name、auth、type,name项是JNDI的名称定义,程序通过JNDI才能找到此对象,这里取名jdbc/OracleDB;auth项即连接池管理权属性,这里取值Container,申明为容器管理;type项即对象的类型,这里取值javax.sql.DataSource,申明为数据库连接池,Tyrex不但可以用作数据库连接池,还有许多别的功能,有兴趣的朋友可以打开Tyrex的jar包看看或访问www. exolab.org,在这里就不多说了。
    在接下来的<ResourceParams>域内容里包含四个参数user、password、driverClassName、driverName,依次为数据库的用户名、密码、JDBC驱动和数据库地址。
    用户名、密码是为访问数据库准备的,这里均取值holen。
    driverClassName即数据库的JDBC驱动名称,如Oracle8.1.7的JDBC驱动包名叫classes.jar,一般位于Oracle安装目录下的ora81\jdbc\lib目录下,初始扩展名为ZIP,需要手工把classes.zip改名为classes.jar,并放到common/lib下。这里取值oracle.jdbc.driver.OracleDriver,此类由classes.jar提供。<parameter> <name>driverClassName</name> <value>oracle.jdbc.driver.OracleDriver</value></parameter>对于其他数据库,如MySql,其driverClassName一般为org.gjt.mm.mysql.Driver。最后一个参数即driverName,即数据库的地址(准确点说应该叫url,4.1.18就改叫url了)
    <parameter> <name>driverName</name> <value>jdbc:oracle:thin:@192.168.0.50:1521:oradb</value></parameter>在这里填写里的是Oracle的访问地址,若是MySql、DB2、SqlServer或其他数据库,请填写相应的地址。第二步:将Oracle的JDBC驱动classes12.jar拷贝到Tomcat安装目录的common/lib下,其他数据库也一样,请把其相应的JDBC驱动包置于common/lib,如MySql的JDBC驱动包mm.mysql-2.0.14.jar。至此,配置完成,测试代码将在后面给出。四、对Tomcat4.1.18的DBCP配置配置方法与4.0.6稍有不同,以下是配置步骤第一步:配置server.xml
    在server.xml文件中找到
    <!-- Tomcat Root Context --><!-- <Context path="" docBase="ROOT" debug="0"/>-->
    将其改为
    <!-- Tomcat Root Context --> <Context path="" docBase="ROOT" debug="0"> <Resource name="jdbc/OracleDB" auth="Container" type="javax.sql.DataSource"/> <ResourceParams name="jdbc/OracleDB"> <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.0.50:1521:oradb</value> </parameter> <parameter> <name>username</name> <value>holen</value> </parameter> <parameter> <name>password</name> <value>holen</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> </Context>
    说明:从配置文件可以看出,DBCP的配置与Tyrex类似,但功能更加丰富。相同就不多说,重点讲述不同的地方。factory参数:<parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value></parameter>即基础对象工厂,这里取值org.apache.commons.dbcp.BasicDataSourceFactory,即DBCP自带的工厂,也可以用别的。
    需说明一点是,虽然4.1.18里主推DBCP作连接池,但仍然可以使用Tyrex作为连接池,而且此时的Tyrex已从0.9.7.0升级到了1.0,支持JTA/JCA对象等,对象的获取仍然是通过JNDI,具体的配置方法可以参见Tomcat文档。url参数:
    <parameter> <name>url</name><value>jdbc:oracle:thin:@192.168.0.50:1521:oradb</value>url是数据库访问地址,在前提已提到。接下来有三个参数,均为连接数相关,如下:
    <parameter> <name>maxActive</name> <value>20</value></parameter><parameter> <name>maxIdle</name> <value>10</value></parameter><parameter><name>maxWait</name> <value>-1</value></parameter>maxActive是最大激活连接数,这里取值20个,表示同时最多有20个与数据库的连接。
    maxIdle是最大空闲连接数,这里取值10个,表示即使没有连接请求时,依然可以保持10空闲的连接,而不被清除,随时处于待命状态。关于对象的状态,有兴趣的朋友可以看看EJB方面的资料。
    maxWait是最大等待秒钟数,这里取值-1,表示无限等待,直到超时为止,也可以取值9000,即表示9秒后超时。
    关于maxActive与maxIdle的一点建议,对于企业级应用,其两者的值一般比较接近,或者相同,关键是要分析应用的大小。第二步:配置web.xml
    打开webapps/ROOT/WEB-INF下web.xml,加入如下内容: <resource-ref> <description>Oracle Datasource example</description> <res-ref-name>jdbc/OracleDB</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>说明:此步可以省略,即不配置web.xml也可以使用连接池,但正式项目应用时还是建议加上。第三步:将Oracle的JDBC驱动classes12.jar拷贝到Tomcat安装目录的common/lib下。至此,配置完成,测试代码将在后面给出。五、测试代码下面写一个JSP文件testdb.jsp,并将testdb.jsp置于webapps/ROOT目录下,测试一下配置是否正确,此测试对以上两个版本均适合。数据库如下:Create table test(id varchar2(12),name varchar2(30))testdb.jsp内容如下:<%@ page contentType="text/html;charset=GBK"%><%@ page import= "java.sql.* "%><%@ page import= "javax.naming.* "%><% try{ Context initCtx = new InitialContext(); Context ctx = (Context) initCtx.lookup("java:comp/env"); //获取连接池对象 Object obj = (Object) ctx.lookup("jdbc/OracleDB"); //类型转换 javax.sql.DataSource ds = (javax.sql.DataSource)obj; Connection conn = ds.getConnection(); Statement stmt = conn.createStatement(); String strSql = " insert into test(id,name) values('00001','holen') "; stmt.executeUpdate(strSql); strSql = " select id,name from test "; ResultSet rs = stmt.executeQuery(strSql); if(rs.next()){ out.println(rs.getString(1)); out.println(rs.getString(2)); } }catch(Exception ex){ ex.printStackTrace(); throw new SQLException("cannot get Connection pool."); }%><hr>说明:先通过JNDI找到jdbc/OracleDB对象,这里是分两步完成的,也可以一步完成,如Object obj = (Object) ctx.lookup("java:comp/env /jdbc/OracleDB");
    然后将得到的对象转换成DataSource类型,进而得到连接,得到连接后就可以进行相应的数据库操作了。
    这里对数据库进行了两步操作,第一步是插入一条记录,第二步是从数据库中取出记录,并显示第一条记录的内容。打开网页,在地址栏中输入http://localhost:8080/testdb.jsp,若一切正常,将显示"00001 holen"。
      

  3.   

    1. public class ComputeQuence{
    ComputeQuence(int n){//构造器初始化数组下标
      this.n = n;
    }
    private int n = 0;//数组下标    
    private int sum(int count){     //通过递归来得到数组的值
    if (-1 == count ){
    return 0;
    }
    if ( -2 == count)
      return 1 ;
    return sum(count-1)+sum(count-2);
    }
    public int[] getQuene(){
      int []S = new int[n];//结果数组
          for (int i =0 ;i<n ; ++i){
           S[i] = sum(i);
           System.out.println(S[i]);
          }
          return S;
    }
    public static void main(String[] args) {
       ComputeQuence c = new ComputeQuence(10);
       int []S = c.getQuene();
    }
    }
      

  4.   

    2.
    servlet连接池的例子    
    ***************************************    
    import  javax.servlet.*  ;    
    import  javax.servlet.http.*  ;    
    import  java.io.*  ;    
    import  java.sql.*  ;    
    import  java.util.Vector;    
    import  oracle.jdbc.driver.*;    
    import  java.util.Enumeration;    
    import  java.util.Properties;    
    import  com.unitech.connectionpool.*  ;      
     
     
    public  class  dbTest  extends  HttpServlet  {    
    //Initialize  global  variables    
    public  void  init(ServletConfig  config)  throws  ServletException  {    
    super.init(config);      
     
    }    
    //  数据库连接:Connetcion  conn  =  null  ;    
    Connection  conn  =  null  ;    
    //数据库查询内容执行:Statement  stment  =  null  ;    
    Statement  stment  =  null  ;    
    //  数据库连接池的初始化    
    DBConnectionManager  connMgr  =  DBConnectionManager.getInstance();      
     
    //初始化数据库连接池,并且获取数据库连接    
    private  void  initDatabaseDriver  ()  {    
    conn  =  connMgr.getConnection("oracle");    
    if  (conn  ==  null)  {    
    System.out.println("数据库连接失败。");    
    return;    
    }    
    try  {    
    stment  =  conn.createStatement();    
    }    
    catch  (SQLException  e)  {    
    e.printStackTrace()  ;    
    }    
    }      
     
    //释放数据库连接    
    private  void  freeConnectionPool()  {    
    connMgr.freeConnection("oracle",  conn)  ;    
    }      
     
    //获取记录集,并返回给VERTOR  V    
    public  Vector  getForumList()  {    
    String[]  s  =  {"","","","",""}  ;//与选取的列数相等。    
    Vector  v  =  new  Vector()  ;    
    this.initDatabaseDriver();    
    try{    
    String  queryStr  =  null  ;    
    queryStr  =  "SELECT  BBS_ID,BBS_NAME,DESCRIPTION,MANAGER_ID,  CREATE_DATE  FROM  BBS  WHERE  IS_SYSTEM='0'  ORDER  BY  CREATE_DATE  DESC"  ;    
    ResultSet  rSet  =  stment.executeQuery(queryStr)  ;    
    while  (rSet.next())  {    
    s[0]  =  Integer.toString(rSet.getInt("BBS_ID"))  ;    
    s[1]  =  rSet.getString("BBS_NAME")  ;    
    s[2]  =  rSet.getString("DESCRIPTION")  ;    
    s[3]  =  rSet.getString("MANAGER_ID")  ;    
    Timestamp  createdate  =  rSet.getTimestamp("CREATE_DATE")  ;    
    String  tmp  =  createdate.toString()  ;    
    s[4]  =  tmp.substring(0,(tmp.length()-2))  ;    
    v.addElement(s.clone());    
    }    
    rSet.close();    
    stment.close();    
    this.freeConnectionPool();    
    }    
    catch(Exception  e)  {    
    try  {    
    stment.close();    
    this.freeConnectionPool();    
    }    
    catch(SQLException  ee)  {    
    ee.printStackTrace();    
    }    
    e.printStackTrace()  ;    
    }    
    return  v  ;    
    }      
     
    //Process  the  HTTP  Get  request    
    public  void  doGet(HttpServletRequest  request,  HttpServletResponse  response)  throws  ServletException,  IOException  {      
     
    PrintWriter  out  =  new  PrintWriter  (response.getOutputStream());    
    response.setContentType("text/html");    
    out.println("");    
    out.println("The  servlet  has  received  a  GET.  This  is  the  reply.");    
    out.println("");    
    out.println("");      
     
    //  将记录集循环输出到页面。    
    Vector  v  =  new  Vector()  ;    
    v  =  this.getForumList()  ;    
    for  (int  i=0;  i"    
    +  ""+s[0]+""    
    +  ""+s[1]+""    
    +  ""+s[2]+""    
    +  ""+s[3]+""    
    +  ""+s[4]+"");    
    }    
    out.println("");    
    out.close();    
    }    
    }    
     
    ---------------------------------------------------------------  
     
    如果使用应用服务器,则一般的在服务器中建立数据源和连接池,方法参看该服务器文档  
     
    程序中使用jndi进行查找数据源,然后获取连接  
    ---------------------------------------------------------------  
     
    /**  
     *  @author    Umesh  
     *  @version  1.0  
     *  
     *  Development  Environment                :    Oracle9i  JDeveloper  
     *  Name  of  the  Application                :    ConnCacheBean.java  
     *  Creation/Modification  History    :  
     *  
     *        Umesh            25-Nov-2001            Created  
     *  
     *  Overview  of  Application                :  This  Bean  Class  is  used  by  all  the  JSPs  
     *  to  perform  database  interaction.  This  class  uses  JDBC  to  perform  any  DML/DDL  
     *  operations.  The  key  concept  illustarted  here  is  Connection  Caching.  
     *  
     *  As  JSPs  execute  in  middle  tier,  getting  an  individual  database  connection  
     *  everytime  for  every  user  is  an  expensive  operation.  This  is  true  especially  
     *  when  number  of  users  involved  are  large  in  numbers.  
     *  
     *  With  the  help  of  Connection  Caching,  the  overhead  of  instantiating  a  new  physical  
     *  database  connection  can  be  easily  overcome.  
     *  
     *  This  bean  is  implemented  as  a  SingleTon  Class  meaning  that  there  can  be  only  
     *  one  instance  of  this  bean  per  JVM.  In  the  constructor  of  the  bean,  Connection  
     *  Cache  is  initialized  and  
     *  
    **/  
    package  oracle.otnsamples.oracle9ijdbc.conncachesample;  
     
    import  java.sql.Connection;  
    import  java.sql.ResultSet;  
    import  java.sql.Statement;  
    import  java.sql.SQLException;  
    import  java.sql.PreparedStatement;  
    import  oracle.jdbc.pool.OracleDataSource;  
    import  oracle.jdbc.pool.OracleConnectionPoolDataSource;  
    import  oracle.jdbc.pool.OracleConnectionCacheImpl;  
    import  java.util.Hashtable;  
    import  java.util.Vector;  
    import  javax.naming.InitialContext;  
    import  javax.naming.NamingException;  
    import  javax.naming.NameNotFoundException;  
    import  javax.naming.Context;  
     
     
    public  class  ConnCacheBean    {  
     
       //  Connection  Cache  Variable  
       private  OracleConnectionCacheImpl  m_ocacheimpl  =  null;  
       //  Data  Source  Variable  
       private  OracleConnectionPoolDataSource  m_cpds  =  null;  
       //  Variable  pointing  to  this  instance  
       private  static  ConnCacheBean  m_thisInstance  =  null;  
     
       /**  
       *  Private  Constructor  :  This  approach  makes  it  easy  to  implement  this  class  as  
       *  SingleTon  Class.  
       *  
       *  This  method  initializes  Cache  if  not  already  initialized.  
       **/  
       private  ConnCacheBean()  throws  Exception  {  
         if  (m_ocacheimpl  ==  null)  
           initializeConnectionCache();  
       }  
     
     
       /**  
       *  Method  which  returns  a  single  instance  of  this  bean.  
       **/  
       public  static  ConnCacheBean  getInstance()  throws  Exception  {  
           if  (  m_thisInstance  ==  null  )  {  
                 m_thisInstance  =  new  ConnCacheBean();  
           }  
           return  m_thisInstance;  
       }  
     
      

  5.   

    2。大家能给我介绍一下,连接池吗。以及做连接池所需要的配置,急用,谢谢大家
    楼上的说的就行了,如果想在web application以外用就得用apache的DBCP包了,用法很简单用:
    BasicDataSource bds= new BasicDataSource();
    然后设置一下url,usr,pwd, size等就行了