數(shù)據(jù)庫連接數(shù)的問題
做一個(gè)緩沖區(qū)(調(diào)度室)來解決,不要直接進(jìn)行物理連接數(shù),稱為DataSource 。
實(shí)現(xiàn)方法:
1.簡(jiǎn)單實(shí)現(xiàn)
2.pooled池化實(shí)現(xiàn)
3.分布式實(shí)現(xiàn)
pooled池化實(shí)現(xiàn)方法:
1.DBCP:實(shí)現(xiàn)JDBC2.0或更高版本,標(biāo)準(zhǔn)實(shí)現(xiàn)。
2.C3P0。
3.proxool:在外層包裝一層池。
直接使用容器中帶過來的連接池技術(shù)。
配置TomCat,使用了一個(gè)JNDI技術(shù)(目錄訪問協(xié)議)。
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是工程項(xiàng)目的名稱。
name是自己取的,在程序中需要調(diào)用到。
一定要開啟服務(wù)器才能運(yùn)行有效。
2.實(shí)現(xiàn)連接:
?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;
?}
在此的參數(shù)是固定的,每個(gè)服務(wù)器都有相應(yīng)的參數(shù)。
其中調(diào)用了在配置文件中的名字,請(qǐng)注意!
posted on 2007-12-24 12:25 Rabbit 閱讀(289) 評(píng)論(0) 編輯 收藏