無(wú)名的博客

          如何在TOMCAT配置數(shù)據(jù)源,調(diào)用數(shù)據(jù)源

          1、在TOMCAT里配置數(shù)據(jù)源,在<host></host>之間加上下面的代碼,具體的參數(shù)根據(jù)自己情況修改
          ???<Context path="" docBase="E:\WEB_CODE\DEMO\WEB" debug="0">
          ???
          ???<Logger className="org.apache.catalina.logger.FileLogger"
          ???????????????????? prefix="localhost_xzm_log." suffix=".txt"
          ??????? ?? timestamp="true"/>

          ????????? <Environment name="maxExemptions" type="java.lang.Integer"
          ????????????????????? value="15"/>
          ????????? <Parameter name="context.param.name" value="context.param.value"
          ???????????????????? override="false"/>?????????
          ?????????
          ????????? <Resource name="jdbc/tzwdb" auth="Container"
          ??????????????????? type="oracle.jdbc.pool.OracleDataSource"/>
          ????????? <ResourceParams name="jdbc/tzwdb">
          ??????????? <parameter><name>factory</name><value>oracle.jdbc.pool.OracleDataSourceFactory</value></parameter>???????????
          ??????????? <parameter><name>driverClassName</name><value>oracle.jdbc.driver.OracleDriver</value></parameter>
          ??????????? <parameter><name>url</name><value>jdbc:oracle:thin:@127.0.0.1:1521:ORCL</value></parameter>
          ??????????? <parameter><name>username</name><value>demo</value></parameter>
          ??????????? <parameter><name>password</name><value>demo</value></parameter>
          ??????????? <parameter><name>serverName</name><value>127.0.0.1</value></parameter>???????????
          ??????????? <parameter><name>databaseName</name><value>ORCL</value></parameter>???????????
          ??????????? <parameter><name>portNumber</name><value>1521</value></parameter>
          ??????????? <parameter><name>maxActive</name><value>30</value></parameter>
          ??????????? <parameter><name>maxIdle</name><value>10</value></parameter>
          ??????????? <parameter><name>maxWait</name><value>500</value></parameter>???????????
          ??????????? <parameter><name>description</name><value>oracle</value></parameter>???????????
          ????????? </ResourceParams>
          ???????????
          ????????? <Resource name="mail/Session" auth="Container"
          ??????????????????? type="javax.mail.Session"/>
          ????????? <ResourceParams name="mail/session">
          ??????????? <parameter>
          ????????????? <name>mail.smtp.host</name>
          ????????????? <value>localhost</value>
          ??????????? </parameter>
          ????????? </ResourceParams>
          ???
          ???</Context>

          2、連接數(shù)據(jù)庫(kù)

          import java.sql.Connection;
          import java.sql.PreparedStatement;
          import java.sql.SQLException;
          import java.sql.Statement;

          import javax.naming.Context;
          import javax.naming.InitialContext;
          import javax.sql.DataSource;

          import org.apache.log4j.Logger;

          /**
          ?* @author :?蕭秋水
          ?*
          ?* @contact me :
          cnyanhai@hotmail.com
          ?*
          ?*/
          public class DBManager {


          ??? static Logger logger = Logger.getLogger(DBManager.class.getClass());

          ??? private Context initCtx = null;

          ??? private Context ctx = null;

          ??? private DataSource ds = null;

          ??? private long timeout = 5000;

          ??? private Statement theStatement = null;

          ??? private PreparedStatement thePstmt = null;

          ??? private static final String userName = "tzw";

          ??? private static final String password = "ywsoft";

          ??? /***************************************************************************
          ???? *
          ???? * 初試化initCtx
          ???? *
          ???? * 取得數(shù)據(jù)源對(duì)象
          ???? *?
          ???? **************************************************************************/

          ??? public DBManager() {
          ??????? try {
          ??????????? initCtx = new InitialContext();
          ??????????? //init context,read config web.xml
          ??????????? if (initCtx == null) {
          ??????????????? throw new Exception("Initial Failed!");
          ??????????? }
          ??????????? ctx = (Context) initCtx.lookup("java:comp/env");
          ??????????? //find "jdbc/tzwdb" object this configruation in the SERVER.XML of
          ??????????? // Tomcat
          ??????????? if (ctx != null) {
          ??????????????? ds = (DataSource) ctx.lookup("jdbc/tzwdb");
          ??????????? }
          ??????????? if (ds == null) {
          ??????????????? throw new Exception("Look up DataSource Failed!");
          ??????????? }
          ??????? } catch (Exception e) {
          ??????????? logger.error("Look up DataSource error! -- " + e.getMessage());
          ??????? }
          ??? }

          ??? /***************************************************************************
          ???? *
          ???? * get Connection
          ???? *
          ???? * @return Connection
          ???? *?
          ???? **************************************************************************/

          ??? public synchronized Connection getConnection() {
          ??????? //get connection and set to delay time
          ??????? long startTime = new java.util.Date().getTime();
          ??????? Connection con = null;
          ??????? while (con == null) {
          ??????????? con = newConnection();
          ??????????? if (con != null) {
          ??????????????? logger.info("Create New Connection!");
          ??????????????? break;
          ??????????? }
          ??????????? try {
          ??????????????? logger.info("Connection timeout,Please wait " + timeout + "ms");
          ??????????????? wait(timeout);
          ??????????? } catch (InterruptedException e) {
          ??????????????? logger.warn("Connection timeout! -- " + e.getMessage());
          ??????????? }
          ??????????? if ((new java.util.Date().getTime() - startTime) >= timeout) {
          ??????????????? logger.warn("Connection timeout!");
          ??????????????? break;
          ??????????? }
          ??????? }
          ??????? return con;
          ??? }

          ??? private Connection newConnection() {
          ??????? Connection con = null;
          ??????? try {
          ??????????? con = ds.getConnection(userName, password);
          ??????????? if (con == null) {
          ??????????????? throw new Exception("Create Connection Failed!");
          ??????????? }
          ??????? } catch (Exception e) {
          ??????????? logger.warn("Create Connection Failed! -- " + e.getMessage());
          ??????? }
          ??????? return con;
          ??? }

          ??? /***************************************************************************
          ???? *
          ???? * release the connection
          ???? *?
          ???? **************************************************************************/

          ??? public synchronized void freeConnection(Connection conn, PreparedStatement pstmt) {
          ??????? try {
          ??????????? //close PreparedStatement
          ??????????? if (pstmt != null) {
          ??????????????? pstmt.close();
          ??????????????? pstmt = null;
          ??????????? }
          ??????? } catch (Exception e) {
          ??????????? logger.warn("release stmt,pstmt error! -- " + e.getMessage());
          ??????? }
          ??????? try {
          ??????????? //close Connection
          ??????????? if (conn != null) {
          ??????????????? conn.close();
          ??????????????? conn = null;
          ??????????? }
          ??????? } catch (SQLException e) {
          ??????????? logger.warn("release conn error! -- " + e.getMessage());
          ??????? }
          ??? }

          }
          ???

          posted on 2006-01-19 10:04 十三郎 閱讀(1452) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): JSP | SERVLET

          主站蜘蛛池模板: 淮南市| 营山县| 武强县| 丁青县| 鄂托克前旗| 隆昌县| 芮城县| 固原市| 房产| 瑞安市| 乌兰察布市| 嘉兴市| 富锦市| 司法| 黎平县| 连平县| 临清市| 赣榆县| 和静县| 伊通| 射洪县| 锡林浩特市| 泊头市| 凌云县| 靖宇县| 都匀市| 平顶山市| 英吉沙县| 宜都市| 延川县| 嘉祥县| 陇川县| 西藏| 庆安县| 内黄县| 遂平县| 汉寿县| 丹江口市| 兴山县| 洞头县| 集安市|