J2EE应用中与Oracle数据库的连接
在J2EE应用程序开发中,应用程序与数据库连接的建立是我们经常遇到的问题之一。在这里我主要谈谈在本地应用程序中通过OCI方式、thin方式和JdbcOdbc桥方式连接Oracle数据库,在iPlanet Application Server 6.5和Sun ONE Application Server 7中对Oracle数据库连接池的配置以及应用中如何从连接池中获得连接。
一、本地通过JDBC获得Oracle数据库连接
通过JDBC获得Oracle数据库连接,有三种方式:OCI方式、thin方式和JdbcOdbc桥方式。OCI方式依赖于本地的动态链接库,如果在本地安装了Oracle数据库客户端可以采用该方式;而thin方式为纯java的数据库连接方式;JdbcOdbc桥方式依赖于本地ODBC数据库源的配置,这种方式一般不太被采用。
1、OCI方式
先在本地安装Oracle客户端,安装完之后,在安装的路径中可以找到…/jdbc/lib/classes12.zip文件,我们在环境变量classpath中设置classes12.zip所在的路径。
然后通过以下的数据库连接类,在本地通过OCI方式获得Oracle数据库连接。
/**
* 在本地获得数据库连接
*/
package com.j2ee.db;
import java.util.*;
import java.sql.*;
import javax.sql.*;
import java.io.*;
import oracle.jdbc.driver.*;
import javax.naming.*;
/**
* 通过OCI方式获得Oracle数据库连接
*/
public class DbConnection
{
final static String sDBDriver = "oracle.jdbc.driver.OracleDriver";
final static String sConnStr = "jdbc:oracle:oci8:sr/sr@ora199";
/**
*
*/
public DbConnection()
{
}
/**
* 获得Oracle数据库连接
*/
public java.sql.Connection connectDbByOci()
{
java.sql.Connection conn=null;
try
{
Class.forName(sDBDriver);
conn = DriverManager.getConnection(sConnStr);
}
catch (Exception e)
{
System.out.println("ERROR:"+e.getMessage());
}
return conn;
}
}
在连接字符串 "jdbc:oracle:oci8:sr/sr@ora199" 中,"sr/sr"为Oracle用户的用户名和口令,"ora199"为数据库服务名。
2、thin方式
先到Oracle技术网(http://otn.oracle.com/global/cn/software/tech/java/sqlj_jdbc/index.html)下载Oracle JDBC Drivers,同样地将下载后的zip文件的路径设置在环境变量classpath。
然后通过以下的数据库连接类,在本地
相关文档:
情况说明:
系统:SUN Solaris8
数据库版本:9203
问题描述:工程人员报告,数据库在重新启动时无法正常启动.检查发现UNDO表空间丢失.
问题诊断及解决过程如下:
1. 登陆系统检查alert.log文件
检查alert.log文件是通常是我们诊断数据库问题的第一步
SunOS 5.8
login: root
Password:
Last login: Thu Apr 1 ......
exp/imp是Oracle自带的导入导出命令,运用它,即使不需要那结UI工具也能轻易的完成数据导出导入工作,下面是它们的参数:
EXP参数详解
使用的格式是:EXP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
其中USERID是必须的且为第一个参数
关键字
备注
USERID
用户名/口令
FULL
导出整个文件 (N)
BUFFER
......
查询:
select distinct(empno) , name , age from t_person t where (t.age between 21 and 25 or name like '%王%') and
empno like '32%';
更新:
update t_person set name = 'ww' where empno = '321654';
update t_person set(empno,name,age) = (select empno,name,age f ......
大学的时候,我是管理学院的,后来细分专业的时候选择了信息管理。于是管理、会计、财务、机械、电子,甚至说情报检索都学过,当然也包括计算机。
如果不算foxbase和foxpro的话,数据库方面仅仅学过一门数据库原理,用的教材是Stanford的影印版。
当时有一个韦老师,总是吹她老公是MIT的博士,很NB。总是对 ......
1
、问题提出
在我们日常的数据库操作尤其是存储过程设计中,经常有记录表之类的集合、显示游标等操作,但这两种数据处理方式在速度及性能上有什么区别呢?
2
、测试方法
在
ORACLE
数据库中创建一个数据表,然后对创建的数据表分别插入
100
条、
1000
条 ......