所问如题。正在学习JSP,之前在网上找到一网友,请教了好多问题,其中说到连接池,我才知到原来可以由程序员自己写连接池,不用配置TOMCAT。不知道怎样做才行。自己写连接池的重点世界什么?

解决方案 »

  1.   

    GOOGLE  BAIDU ,我看过,也试过 ;呵呵还是自己找找,下手写写 ,写写更健康
      

  2.   

    可以设置一类DBConnectionManager负责连接池的维护,但是要注意的是:获得连接、释放链接都需要使用同步方法,synchronized。同时,DBConnectionManager使用单一实例模式。简单类图如下:
      

  3.   

    Proxool连接池:
    http://blog.csdn.net/javaxiaochouyu/archive/2011/06/21/6559466.aspx
    Tomcat连接池:
    http://blog.csdn.net/javaxiaochouyu/archive/2011/06/21/6558755.aspx
      

  4.   


    据说Proxool连接池是很不错的,效能比较好。我先看看你的链接,谢谢。
      

  5.   

    tomcat的每个项目,自带一个context.xml文件的,可以在这里配置连接池,给你个例子,你用你自己的url:<?xml version="1.0" encoding="UTF-8"?>
    <Context path="/branch">
       <Resource name="jdbc/query" auth="Container"
        type="javax.sql.DataSource" driverClassName="com.informix.jdbc.IfxDriver"
        url="jdbc:informix-sqli://10.0.0.1:9999/yourdb:informixserver=on***;newlocale=en_us,zh_cn;newcodeset=gbk,8859-1,819;IFX_USE_STRENC=true;" username="user" password="pwd"
        maxActive="30" maxIdle="10" maxWait="1000"
        factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"/>
    </Context>
      

  6.   

    开心了一下 结果 神马都没有JAVA代码写连接池我很期待。
      

  7.   

    自己要写个连接池极其复杂,详见:http://topic.csdn.net/u/20101121/23/872c3990-a7a8-42d8-8e5e-ef1de688301d.html#r_700612712. 如果让你设计一个数据库连接池,你可能会考虑到哪些方面的问题?a. 连接池需要实现前面提到的 javax.sql.DataSource 接口,以适合于不同的场合。b. Connection#close 问题。使用者使用连接池与不使用连接池,除了从哪获得 Connection 对象不一样之外,其他 JDBC 的代码是完全相同的,并不能因为使用连接池而改变既有的 JDBC 代码。如果不能改变 JDBC 代码,就带来了一个 Connection close 的问题,大家都知道这个调用是关闭数据库连接,如果在连接池中这么做的话就会关闭连接,使用连接得不到重用。c. 连接被动关闭问题。为了保证连接的复用性,将连接一直保存在池中。有些数据库服务器会将已经连接很久的客户端连接主动踢掉,如果碰到这种情况,在池中的这个连接池就会变为不可用状态,如果被客户端使用的话将会抛出连接被关闭的 SQLException。d. 连接回收问题。假如我们的连接池最大设为 50 个,在某一并发很高的时段达到了 50 个,但是过后并发率就降下去了,对于连接池来说池中还是 50 个连接,实际上后面根本不需要那么多连接。这时连接池白白地浪费了几十个数据库宝贵的连接(数据库对于客户端的连接数是有限制的),如果连接池占用了很多的连接,那么可能会导致其他应用程序因为数据库客户端的连接数到了限制而无法再获得连接。我们应该及时地将不需要使用的连接关闭还给数据库服务器,保留一些基本连接数。e. 网络中断重连问题。连接池中的连接在网络中断时,池中连接会全部断开,数据库服务端也会回收断开的连接。但是网络中断后,过了一些时间又连上了,这时池中的连接依然是断开的,如果取出来用的话,不用说就会抛出异常的。一个可用的连接需要有实现自动重连功能,否则就没有可用的价值。
      

  8.   

    自己当然可以写,否则人家的链接池都是怎么来的。lz功力有待提高啊。说到安全,你自己写的就能保证安全?恐怕更差。再说web-inf是不允许通过web访问的。这点都不能保证,服务器软件的价值何在。再说就算有人知道了数据库的链接信息,数据库和服务器应该配置为安全的,比如不能通过外网访问,不能远程连接等。自己写完全没必要,而且多数情况下是自己找麻烦。
      

  9.   

    火龙果大哥的建议我又看了一次 木哈哈我这里有个自己实现的连接池 勉强能用吧 算是http://code.google.com/p/lv9/source/browse/#svn%2Fexample%2Fjava%2Fsrc%2Fjdbc