使用一個JSP中的connection 緩存

本文來自程式先鋒網站:www.javabiz.cn

Jaguar 提供了一個非常有用的緩存機制來提供數據庫訪問速度。可以根據這個緩存機制來緩存ODBC,JDBC或者Oracle的連接。
注意:java組件不能使用緩存ODBC連接,只能緩存JDBC連接,如果實在沒有JDBC驅動的話, 也可以勉強使用由SUN公司提供的ODBC-JDBC,這種橋的性能很差,而且在多線程的應用系統中可靠性很差。

要想定義一個緩存的ODBC-JDBC(橋)連接,可以按照下面的步驟:

通過ODBC管理面板設置,定義一個普通的系統數據源(DSN)

在 jaguar 裏面定義緩存 :
General Tab : Server name = jdbc:odbc:YourSystemDSNName with user/pwd
Driver Tab : DLL 或者類名 name = sun.jdbc.odbc.JdbcOdbcDriver jdbc radio要選中
Cache Tab : 選中名稱相對應的checkbox  
<%@page contentType="text/html"%>
<html>
<head><title>JSP Page</title></head>
<body>
<%@ page import="java.sql.*" %>
<%
  com.sybase.jaguar.jcm.JCMCache  jcmCache= null;
  java.sql.Connection dbConn = null;
  String jcmCacheString = "mycachename";
  String msg = "";
      
  try {
      jcmCache =
        com.sybase.jaguar.jcm.JCM.getCacheByName(jcmCacheString);
      dbConn =
        jcmCache.getConnection(com.sybase.jaguar.jcm.JCMCache.JCM_WAIT);

      Statement stmt = dbConn.createStatement();
      ResultSet rs =
        stmt.executeQuery
           ("select msg from messages where msgid='00001'");

      if(rs != null) {
       while(rs.next()) {
          msg = rs.getString("msg");
          }
       }         
      rs.close();
      dbConn.close();
  }
  catch (Exception e) {
    out.println("OUPS " + e.getMessage() + "<BR>");
    }
%>
msgtext =
      <i><%= msg %></i>
</body>
</html>

不要把緩存的名字硬編碼到你的組件中,讓這個名字放在WEB應用環境變量中是個不錯的選擇,這種方法使得系統維護和更新起來要更容易一些。
這個例子裏面, myconnection 包括了所使用緩存的名稱.
  javax.naming.InitialContext ctx = new javax.naming.InitialContext();
  javax.sql.DataSource ds = (javax.sql.DataSource)
      ctx.lookup("java:comp/env/jdbc/myconnection");
  java.sql.Connection con = ds.getConnection();
  java.sql.PreparedStatement stmt = con.prepareStatement(sql);
  java.sql.ResultSet rs = stmt.executeQuery();

  while (rs.next()) {
     //do something
  }

總結,本文把使用Jaguar 使用緩存ODBC的連接方式使用做了一個示例,僅供各位參考,歡迎指教。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章