1.为工程配置tomcat连接池:
配置server.xml (tomcat/conf/server.xml)在</Host>前面加上
<Context docBase="myWebProject"" path="/myWebProject" reloadable="true">
<Resource name="连接池名字 例:jdbc/oracle"
auth="Container"
type="javax.sql.DataSource"
factory="org.apache.common.dbcp.BasicDataSourceFactory"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@127.0.0.1:1521:NEUSOFT"
username=""
password=""
maxActive="5000"
maxIdle="10"
maxWait="-1"/>
</Context>
参数说明:
i.JNDI Name::注册到JNDI树上的名字(可以随便写)
ii. Data Source URL:连接数据库的URL
iii. JDBC Driver Class:Jbdc数据库的驱动名称
iv. User Name:访问数据库的用户
v. Password:访问数据库的密码
vi. Max. Active Connections:最大活跃连接数,指同时可以有多少个连接,设置为0没有限制
vii. Max. Idle Connections:最大空闲连接数,表示没有数据库连接时,连接池也必须保持最大空闲连接数,设置为0没有限制
viii. Max. Wait for Connection:连接建立等待时间,单位为毫秒,设置为-1无限制
ix. Validation Query::此参数用来查询池中的空闲连接(可以不配置)
需要把 jdbc的包导入 tomcat的lib中 ( tomcat6/lib tomcat5.x/commen/lib)
oracle的包在oracle92/jdbc/classes12.jar
ms sqlserver要用到的三个驱动包
2。连接语句
Context initCtx = new InitialContext();
javax.sql.DataSource ds = (javax.sql.DataSource)initCtx.lookup("java:comp/env/连接池名字");
conn = ds.getConnection();
jsp中:(不推荐)
:<sql:setDataSource dataSource="连接池名字" var="myOracleDB"/>
<sql:query sql="select * from channel" dataSource="${myOracleDB}" var="channelRS"/>
<c:forEach items="${channelRS.rowsByIndex}" var="channel">
${channel[1]}
</c:forEach>
使用连接池实现的连接,只能在web服务器中运行。不能run。
/*非连接池的一般JDBC使用*/
Class.forName(driver);
Connection conn = DriverManager.getConnection(url,name,password);
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
ORACLE:driver :oracle.jdbc.driver.OracleDriver
url: jdbc:oracle:thin:@IP:1521:数据库名
包: oracle92/jdbc/classes12.jar
Sqlserver:driver:com.microsoft.jdbc.sqlserver.SQLServerDriver
url:jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=数据库名
3. 连接池还有‘对所有工程配置tomcat连接池’和‘在struts中 配置struts-config.xml以配置连接池’。
http://blog.csdn.net/angel_bear/archive/2006/06/09/784573.aspx (by angelbear)里有以上3种连接池的配置方法。
后补 疑问:factory="org.apache.common.dbcp.BasicDataSourceFactory" 这句话回引起一个 class cannt find 的异常,尚未解决。
大致原因可能是缺少commons-dbcp-1.2.1和commons-pool-1.3的包,此包在tomcat6中未发现,tomcat5/commen/lib下有commons-pool-1.2.jar。
而且很多人的连接池配置语句中 没有这句话。这句话的作用不太明白,但暂时好像不添加也能正常运行。