繁体中文
设为首页
加入收藏
当前位置:JSP技术首页 >> 数据库相关 >> 用JDBC连接Oracle数据库(问题得以解决,特此总结一下,欢迎兄弟们指出不足)

用JDBC连接Oracle数据库(问题得以解决,特此总结一下,欢迎兄弟们指出不足)

2004-10-01 08:26:10  作者:  来源:互联网  浏览次数:43  文字大小:【】【】【
简介:通常有四种连接方式可供选择,这里我只采用了其中两种 我采用win98下的tomcat 服务器是winnt的,安装的Oracle 我的类路径是:D:\tomcat\webapps\ROOT\WEB-INF\classes\yourpackage jsp路径:D:\tomcat\webapps\R...

通常有四种连接方式可供选择,这里我只采用了其中两种

我采用win98下的tomcat

服务器是winnt的,安装的Oracle

我的类路径是:D:\tomcat\webapps\ROOT\WEB-INF\classes\yourpackage

jsp路径:D:\tomcat\webapps\ROOT\

调用路径:http://127.0.0.1:8080/connOracle.jsp

(你的实在不行,可以试试我的路径^_^)

1,使用JDBC_ODBC桥连接

首先记得在系统数据源里建立一个ODBC连接哦^_^,(可以采用PB或其他程序连接数据库,测试一下这个ODBC建立成功没有)

接下来写类文件,可以采用以下类文件:

package yourpackage; //注意,java的类存储系统和文件系统有关哦:)

import java.sql.*;

public class opendb

{

String sDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";

String sConnStr="jdbc:odbc:yourdb"; //这里的yourdb是你建的ODBC数据原的DNS

Connection conn=null;

ResultSet rs=null;

public opendb()

{

try{

Class.forName(sDBDriver);

}

catch(java.lang.ClassNotFoundException e)

{

System.err.println("opendb();"+e.getMessage());

}

}

public ResultSet executeQuery(String sql)

{

rs=null;

try{

conn=DriverManager.getConnection(sConnStr,"username","password"); //注意这里的数据库用户名和密码一定要根据实际情况设置

Statement stmt=conn.createStatement();

rs=stmt.executeQuery(sql);

}

catch(SQLException ex){

System.err.println("aq.executeQuery:"+ex.getMessage());

}

return rs;

}

}

这种方法比较简单,通常较容易实现,但据说存在漏洞(本人没有做深层次研究),且不适于大型数据库的大规模的数据流量,故尝试直接采用JDBC连接^_^

2,直接使用JDBC连接数据库

首先把类文件给你,看看吧,基本上差不多,就是连接参数的设置问题:

package yourpackage;

import java.sql.*;

public class openOracle

{

String sDBDriver="oracle.jdbc.driver.OracleDriver"; //不要以为这个驱动器是系统已有的,我也是后来才把它加进去的,关键哦

String sConnStr="jdbc:oracle:thin:@server:1521:yourservername"; //要注意啦,server为你用的数据库所在的服务器的名称,一般Oracle的端口都采用1521,当然,你也可以咨询一下你们的系统管理员^_^,yourservername是你用的数据库的服务名

Connection conn=null;

ResultSet rs=null;

public openOracle()

{

try{

Class.forName(sDBDriver);

}

catch(java.lang.ClassNotFoundException e)

{

System.err.println("openOracle();"+e.getMessage());

}

}

public ResultSet executeQuery(String sql)

{

rs=null;

try{

conn=DriverManager.getConnection(sConnStr,"username","password");

Statement stmt=conn.createStatement();

rs=stmt.executeQuery(sql);

}

catch(SQLException ex){

System.err.println("aq.executeQuery:"+ex.getMessage());

}

return rs;

}

}

编译成功,但用浏览器执行,出错 :(,总是一大堆不认识的系统的类列了一片,这时我发现启动tomcat时弹出的DOS窗口抛出这样两个错误(是我的catch捕获的)

openOracle():oracle.jdbc.odbc.OracleDriver

aq.executeQuery: No suitable driver

由此可以推测是驱动程序找不到,通过请教网友,发现缺少的从classes12.zip文件里可以找到。通过搜索我在我的D:\Oracle\jdbc\lib里找到这个文件。解压,通过各种尝试,以及相关推理分析,我把解压后的其中的Oracle文件夹放到D:\tomcat\lib下,运行程序,成功了,可以看到令人兴奋的“连接成功”的结果了^_^

以上这两种方法,你都可以采用下面这个文件进行测试,只需修改相应调用的类文件就可以了。^_^

<%@ page contentType="text/html;charset=GBK"%>

<%@ page language="java" import="java.sql.*"%>

<%

String sql="select * from user "; //这里,你可以随便找你的一个表进行简单查询,只要能产生结果就可以(记得要找个有数据的表哦:P)

ResultSet rs=db.executeQuery(sql);

String mess="";

if(rs.next())

{

mess="连接成功!";

}

else

{

mess="连接失败!";

}

rs.close();

%>

数据库连接测试

数据库连接测试结果:

<%=mess %>

试试看吧!程序基本没问题,如果不能实现,多方面找找原因,放的目录对不对,需要的类文件有没有放进去?注意别犯低级错误哦^_^

祝你好运!^_^

责任编辑:admin
相关文章