您的位置: 主页 > 编程开发 > ASP > JSP+JDBC(Thin模式)连接OracleJSP

JSP+JDBC(Thin模式)连接OracleJSP
时间:11-11-04 来源:网络 作者:admin 阅览:

  在JSP中连接到Oracle一般有2种方式:

  1、Oracle JDBC的oci8方式

  2、Oracle JDBC的thin方式

  我比较喜欢第2种,因为WEB发布服务器与数据库服务器一般都不会放在同一台电脑中,而在使用thin方式连接时,Web服务器端无须安装oracle的客户端。

  在动手先代码之前,我们先把环境配置妥善。先从安装了Oracle的数据库服务器中,找到Oracle安装目录,然后将该目录下的jdbclibclasses12.jar文件拷贝到WEB发布服务器的某个目录。假设就直接放在C:根目录下吧,然后把该路径添加到‘系统--高级--环境变量’中变量名为‘CLASSPATH’的值中,如:D:Program FilesSQLLIBjavadb2java.zip;D:Program FilesSQLLIBjavauntime.zip;c:classes12.jar; 也就是让java能够找到这个包。

  配置好环境后,我们就开始开始动手写代码了。关于数据库连接的代码,应该写个专门的连接类来调用,没必要想网络上有些文章那样,直接写到JSP的代码中。

  关于连接的代码很简单

  private Connection newConnection(String user,String password) {
  Connection con = null;
  try {
  Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
  con = DriverManager.getConnection (“jdbc:oracle:thin:@192.168.96.1:1521:oracle9i”,user,password);
  }
  catch (SQLException e) {
  return null;
  }
  return con;
  }

  如果帐号密码没有错,那这个函数就应该能返回个可用的连接。但如此简单的连接在一个项目中使用,是远远达不到效果的。我们可以在这个数据库连接类中加入更多的功能,如连接池等等。下面我就把该数据库连接类的代码详细的列出来,大家可以参考参考。

  /*
  * @Title 公司网站
  * @Author: zf
  * @Version 1.0
  * @Memo:定义数据库连接及其数据库连接池等
  */
  package com.kingson.db;

  import java.io.*;
  import java.sql.*;
  import java.util.*;
  import java.util.Date;

  public class DBConnectionManager {
  static private DBConnectionManager instance; // 唯一实例
  static private int clients;

  private Vector drivers = new Vector();
  private PrintWriter log;
  private Hashtable pools = new Hashtable();

  /**
  * 返回唯一实例.如果是第一次调用此方法,则创建实例
  *
  * @return DBConnectionManager 唯一实例
  */
  static synchronized public DBConnectionManager getInstance() {
  if (instance == null) {
  instance = new DBConnectionManager();
  }
  clients++;
  return instance;
  }

  /**
  * 建构函数私有以防止其它对象创建本类实例
  */
  private DBConnectionManager() {
  init();
  }

  /**
  * 将连接对象返回给由名字指定的连接池
  *
  * @param name 在属性文件中定义的连接池名字
  * @param con 连接对象
  */
  public void freeConnection(String name, Connection con) {
  DBConnectionPool pool = (DBConnectionPool) pools.get(name);
  if (pool != null) {
  pool.freeConnection(con);
  }
  }

  /**
  * 获得一个可用的(空闲的)连接.如果没有可用连接,且已有连接数小于最大连接数
  * 限制,则创建并返回新连接
  *
  * @param name 在属性文件中定义的连接池名字


ASP相关
关于<< JSP+JDBC(Thin模式)连接OracleJSP >>的评论 查看所有评论