日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

TOMCAT動態(tài)創(chuàng)建連接池收藏 - - JavaEye技術網(wǎng)站

 ShangShujie 2010-09-19

<script></script> 看到一些朋友需要對tomcat連接池進行加密http://topic.csdn.net/u/20071023/15/3b85f3bf-73fa-4f06-8c94-a76431afd5d3.html,偶有感觸,在 艷照門事件的影響下,大家都對公司核心數(shù)據(jù)的加密非常關注,即使是服務器連接池,也必須防止硬件工程師在無意或有意把數(shù)據(jù)拿走后保證數(shù)據(jù)的安全性,面對這 樣的問題,Sybase ASA已經(jīng)提供了數(shù)據(jù)庫的加密,只要沒有密鑰的情況下,即使拿到數(shù)據(jù)庫也會無法查看其中的數(shù)據(jù),這對需要數(shù)據(jù)庫級加密的需求來說是非常棒的,但在可以找到 的TOMCAT連接池配置中卻只能用明碼保存連接配置,管理員或硬件維護員可以很容易的獲得密鑰,這樣就使數(shù)據(jù)庫的加密變得毫無意義,這時怎么辦呢?下面 將一步一步教大家解決的方法:

先看到在英文版Professional Apache Tomcat 6(http://download.csdn.net/source/264074
有下載)的Chapter 13: JDBC Connectivity中有一節(jié),Alternative Connection Pool Managers,在這一節(jié)中詳細描述了動態(tài)創(chuàng)建連接的方法,便動手進行測試

1.下載c3p0 Pool Manager,http://nchc.dl./sourceforge/c3p0/c3p0-0.9.1.2.bin.zip

2.在項目中添加
c3p0的引用,即把c3p0-0.9.1.2.jar添加到項目中。

3.建立Bean

package mydatabase;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class database_connection {

    
private static ComboPooledDataSource pool = null;
    
    
public static Connection get_connection() throws Error
    
{
        
try {
            
if (pool == null)
            
{
                pool 
= new ComboPooledDataSource();
                pool.setDriverClass( 
"ianywhere.ml.jdbcodbc.IDriver" );
                pool.setJdbcUrl( 
"jdbc:odbc:dsn=FunctionFace;uid=aaa;pwd=bbb;dbkey=數(shù)據(jù)庫是加密的哦;dbf=D:/WorkPlace/WorkLine/FirstTmp/Database/FunctionFace.db" );
                pool.setUser(
"dba");
                pool.setPassword(
"sql");
                pool.setAcquireIncrement(
3);
                pool.setMaxPoolSize(
30);
            }

            
return pool.getConnection();
        }
 catch (Exception e) {
            e.printStackTrace();
        }

        
        
throw new Error("沒有找到數(shù)據(jù)庫連接配置??!");
        
    }


}


4.在JSP界面中調用
<%@ page language="java" pageEncoding="utf-8"%>
<%@ page import="java.sql.*"%>
<%@ page import="mydatabase.database_connection"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  
<head>
    
<title>使用動態(tài)連接池的實驗</title>
  
</head>
  
  
<body>
  我們偉大的CSDN的同志是不用JSP來開發(fā)的,居然不能導入JSP程序,真暈,不知道是否大家是否看得清楚下面這段代碼
  
<%
      out.println(
"開始連接數(shù)據(jù)庫!!");
      
//out.println(System.getProperty("java.library.path"));
      try{
          
//database_base dba = new database_base();
          Connection conn 
= database_connection.get_connection();
          out.println(
"獲取連接池成功!!<br>");

        out.println(
"<br>");
        out.println(
"下面根據(jù)JDBC元數(shù)據(jù)提取  實驗表A 的主鍵字段信息:<br>");
        DatabaseMetaData b 
= conn.getMetaData();
        ResultSet pkRSet 
= b.getPrimaryKeys(nullnull"實驗表A");
        
while (pkRSet.next()) {
            out.println(
"****** Comment ******<br>"); 
            out.println(
"TABLE_CAT : "+pkRSet.getObject(1)+"<br>"); 
            out.println(
"TABLE_SCHEM: "+pkRSet.getObject(2)+"<br>"); 
            out.println(
"TABLE_NAME : "+pkRSet.getObject(3)+"<br>"); 
            out.println(
"COLUMN_NAME: "+pkRSet.getObject(4)+"<br>"); 
            out.println(
"KEY_SEQ : "+pkRSet.getObject(5)+"<br>"); 
            out.println(
"PK_NAME : "+pkRSet.getObject(6)+"<br>"); 
            out.println(
"****** ******* ******<br>"); 
        }
          //conn.close();  這里不要關掉哦,讓系統(tǒng)自己管理連接好了
          //out.println(
"關閉連接<br>"); 
      } catch (Exception ex) {
          out.print(ex.getMessage());
          ex.printStackTrace();
      }
  
%>
  
  
</body>
</html>

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多