|
在JSP中连接到Oracle一般有2种方式:
1、Oracle JDBC的oci8方式
2、Oracle JDBC的thin方式
我比较喜欢第2种,因为WEB发布服务器与数据库服务器一般都不会放在同一台电脑中,而在使用thin方式连接时,WEB服务器端无须安装oracle的客户端。
在动手先代码之前,我们先把环境配置妥善。先从安装了Oracle的数据库服务器中,找到Oracle安装目录,然后将该目录下的jdbc\lib\classes12.jar文件拷贝到WEB发布服务器的某个目录。假设就直接放在C:\根目录下吧,然后把该路径添加到‘系统--高级--环境变量’中变量名为‘CLASSPATH’的值中,如:D:\Program Files\SQLLIB\java\db2java.zip;D:\Program Files\SQLLIB\java\runtime.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 在属性文件中定义的连接池名字 * @return Connection 可用连接或null */ public Connection getConnection(String name) { DBConnectionPool pool = (DBConnectionPool) pools.get(name); if (pool != null) { return pool.getConnection();
上一篇:JSP和IIS的最佳解决方案实例分析
下一篇:用JSP构建三层管理信息系统
|