Java世界

学习笔记

常用链接

统计

积分与排名

天籁村

新华网

雅虎

最新评论

数据库连接数的问题

做一个缓冲区(调度室)来解决,不要直接进行物理连接数,称为DataSource 。
实现方法:
1.简单实现
2.pooled池化实现
3.分布式实现

pooled池化实现方法:
1.DBCP:实现JDBC2.0或更高版本,标准实现。
2.C3P0。
3.proxool:在外层包装一层池。

直接使用容器中带过来的连接池技术。
配置TomCat,使用了一个JNDI技术(目录访问协议)。

1.配置:
<!-- The contents of this file will be loaded for each web application -->
<Context docBase="CRMDemo"
         privileged="true" antiResourceLocking="false" antiJARLocking="false">

 <Resource name="jdbc/CRMDemo" auth="Container" class="org.apache.commons.dbcp.BasicDataSource"
  type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver"
  url="jdbc:mysql://localhost:3306/test" username="root" password="root"
  maxActive="10" maxIdle="5" removeAbandoned="true" maxWait="300" />
</Context>


docBase是工程项目的名称。
name是自己取的,在程序中需要调用到。
一定要开启服务器才能运行有效。


2.实现连接:
 public static Connection getConnection() throws NamingException, SQLException {
  Context initContext = new InitialContext();
  // 注意: 以下写法只适用于tomcat(java:/comp/env).
  DataSource dataSource = (DataSource) initContext.lookup("java:/comp/env/jdbc/CRMDemo");
  Connection conn = dataSource.getConnection();
  return conn;
 }



在此的参数是固定的,每个服务器都有相应的参数。
其中调用了在配置文件中的名字,请注意!

posted on 2007-12-24 12:25 Rabbit 阅读(288) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航: