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。
而且很多人的連接池配置語句中 沒有這句話。這句話的作用不太明白,但暫時好像不添加也能正常運行。
配置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。
而且很多人的連接池配置語句中 沒有這句話。這句話的作用不太明白,但暫時好像不添加也能正常運行。