JDK環(huán)境變量設(shè)置:
假如你的jdk裝在了d:\jdk下
設(shè)置JAVA_HOME d:\jdk
設(shè)置classpath=.;d:\jdk\lib\tools.jar;d:\jdk\lib\dt.jar; 另一種設(shè)法為:classpath=.;d:\jdk\jre\lib\rt.jar;d:\jdk\lib\tools.jar;
設(shè)置path path=d:\jdk\bin 告訴操作系統(tǒng)如何來(lái)尋找java的jvm
------------------------------------------------------------------------
設(shè)置tomcat的環(huán)境變量:
假如你的tomcat直接解壓到d:\tomcat下
設(shè)置TOMCAT_HOME d:\tomcat
設(shè)置CATALINA_HOME d:\tomcat (tomcat_home 和catalina_home二者之中最少要一個(gè))
-----------------------------------------------------------------------------
設(shè)置tomcat的數(shù)據(jù)庫(kù)連接池
修改tomcat的conf下的server.xml文件
在 <GlobalNamingResources>和 </GlobalNamingResources>之間加入以下內(nèi)容:
<Resource name="jdbc/connectDB" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/connectDB"> <!-- 這里為數(shù)據(jù)源名稱為jdbc/connectDB-->
<parameter>
<name>url</name> <!--這里為連接數(shù)據(jù)庫(kù)url-->
<value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=hcibe</value>
</parameter>
<parameter>
<name>maxIdle</name> <!--數(shù)據(jù)庫(kù)連接的最大空閑時(shí)間。超過(guò)此空閑時(shí)間,數(shù)據(jù)庫(kù)連接將被標(biāo)記為不可用然后被釋放。設(shè)為0表示無(wú)限制。-->
<value>30</value>
</parameter>
<parameter>
<name>maxActive</name> <!--最大連接線程-->
<value>100</value>
</parameter>
<parameter>
<name>driverClassName</name> <!--jdbc連接類的名稱-->
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
<parameter>
<name>maxWait</name> <!--最大的等待時(shí)間為5秒-->
<value>5000</value>
</parameter>
<parameter>
<name>removeAbandoned</name><!--參數(shù)removeAbandoned來(lái)保證刪除被遺棄的連接使其可以被重新利用-->
<value>true</value>
</parameter>
<parameter>
<name>username</name> <!--這里為登陸數(shù)據(jù)庫(kù)的用戶名-->
<value>test</value>
</parameter>
<parameter>
<name>removeAbandonedTimeout</name> <!--設(shè)置被遺棄的連接的超時(shí)的時(shí)間,即當(dāng)一個(gè)連接連接被遺棄的時(shí)間超過(guò)設(shè)置的時(shí)間時(shí) 那么它會(huì)自動(dòng)轉(zhuǎn)換成可利用的連接。默認(rèn)的超時(shí)時(shí)間是300秒。-->
<value>60</value>
</parameter>
<parameter>
<name>password</name> <!--這里為登陸數(shù)據(jù)庫(kù)的密碼-->
<value>test</value>
</parameter>
</ResourceParams>
-------------------------------------------------------------------------------------------------------------------------
設(shè)置了數(shù)據(jù)庫(kù)連接池要在你的應(yīng)用程序下的WEB-INF目錄下的web.xml文件加入以下內(nèi)容
<resource-ref>
<description>connectDB hcibe</description>
<res-ref-name>jdbc/connectDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
--------------------------------------------------------------------------------------------------------------
在tomcat下的\conf\Catalina\localhost文件夾下面一定要建站點(diǎn)的XML,比如你的項(xiàng)目的名稱是Test,
那么在下面的話可以建一個(gè)Test.xml文件,這樣的話就有可能不會(huì)出錯(cuò)的!如果不建的話,可能會(huì)
出現(xiàn)Cannot create JDBC driver of class '' for connect URL 'null'的錯(cuò)誤!
------------------------------------------------------------------------------------------------------------
4) maxActive 連接池的最大數(shù)據(jù)庫(kù)連接數(shù)。設(shè)為0表示無(wú)限制。
5) maxIdle 數(shù)據(jù)庫(kù)連接的最大空閑時(shí)間。超過(guò)此空閑時(shí)間,數(shù)據(jù)庫(kù)連接將被標(biāo)記為不可用,然后被釋放。設(shè)為0表示無(wú)限制。
6) maxWait 最大建立連接等待時(shí)間。如果超過(guò)此時(shí)間將接到異常。設(shè)為-1表示無(wú)限制。
7) removeAbandoned 回收被遺棄的(一般是忘了釋放的)數(shù)據(jù)庫(kù)連接到連接池中。
8) removeAbandonedTimeout 數(shù)據(jù)庫(kù)連接過(guò)多長(zhǎng)時(shí)間不用將被視為被遺棄而收回連接池中。
9) logAbandoned 將被遺棄的數(shù)據(jù)庫(kù)連接的回收記入日志。
10) driverClassName JDBC驅(qū)動(dòng)程序。
11) url 數(shù)據(jù)庫(kù)連接字符串
下面是一下參數(shù)的必要說(shuō)明:
1) description 對(duì)被引用的資源的描述。
2) res-ref-name 資源名稱。見(jiàn)上面的<ResourceParams name="jdbc/connectDB">
3) res-type 資源類型。見(jiàn)上面的<Resource name="jdbc/connectDB" auth="Container" type="javax.sql.DataSource"/>
在寫(xiě)個(gè)調(diào)用的類
import java.util.*;
import java.sql.*;
import javax.sql.*;
import javax.naming.*;
/**
* <p>Title: 數(shù)據(jù)庫(kù)池連接</p>
*
* <p>Description: 數(shù)據(jù)庫(kù)訪問(wèn)時(shí)調(diào)用該層獲取數(shù)據(jù)庫(kù)連接</p>
*
* <p>Copyright: Copyright (c) 2005</p>
*
* <p>Company: </p>
*
* @author jlin not attributable
* @version 1.0
*/
public class DbConn{
private Context ctx;
private Connection conn;
public DbConn(){
}
public Connection getConn(){
try{
ctx = new InitialContext();
if (ctx == null)
throw new Exception("沒(méi)有匹配的環(huán)境");
DataSource ds = (DataSource) ctx.lookup(
"java:comp/env/jdbc/connectDB");
if (ds == null)
throw new Exception("沒(méi)有匹配數(shù)據(jù)庫(kù)");
conn = ds.getConnection();
}
catch(Exception e){
System.out.println("無(wú)法獲取數(shù)據(jù)庫(kù)連接:"+e.toString());
}
return conn;
}
public void close(){
try{
if(conn!=null)
conn.close();
if(ctx!=null)
ctx.close();
if(!conn.isClosed())
System.out.println("dbconn連接沒(méi)關(guān)閉.....");
}
catch(Exception e){
System.out.println("關(guān)閉連接或Context異常:"+e.toString());
}
}
}