用JDBC-ODBC连接Oracle的问题

shunshine988 2009-07-05 08:54:14
首先配置了一个数据源,测试连接成功.
然后写了一个JSP页面,在TOMCAT下运行,结果出现下面错误:

org.apache.jasper.JasperException: javax.servlet.ServletException: java.sql.SQLException: No suitable driver
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:541)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:417)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:413)

好像说是没有合适的驱动,用JDBC-ODBC方式连接oracle数据库还需要驱动程序吗?


...全文
437 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
shunshine988 2009-07-06
  • 打赏
  • 举报
回复
啊,谢谢你的提醒,还真的那个地方写错了,现在OK了.^_^

[Quote=引用 10 楼 inthirties 的回复:]
引用 9 楼 shunshine988 的回复:
这些都在JSP页面里做了呀(如下),也配置好了一个数据源,名为odbc_ora10g,测试也连接成功.
<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn=DriverManager.getConnection("jdbc:odbc.odbc_ora10g","Bart","Bart");
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("select * from system.emp");
%>
然后打开TOMCAT测试时就出现了如下的…
[/Quote]
inthirties 2009-07-06
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 shunshine988 的回复:]
这些都在JSP页面里做了呀(如下),也配置好了一个数据源,名为odbc_ora10g,测试也连接成功.
<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn=DriverManager.getConnection("jdbc:odbc.odbc_ora10g","Bart","Bart");
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("select * from system.emp");
%>
然后打开TOMCAT测试时就出现了如下的错误,No suitable driver没有合适的驱动,…
[/Quote]

看你这里

是出错在
Connection conn=DriverManager.getConnection("jdbc:odbc.odbc_ora10g","Bart","Bart");

sun.jdbc.odbc.JdbcOdbcDriver是在rt.jar里的,所以不需要加载,由于是odbc,是通过odbc桥来连接oracle的,是不需要oracle的jar的。

这里是你的url写错了
"jdbc:odbc.odbc_ora10g" 改成 "jdbc:odbc:odbc_ora10g"

好久不用odbc了,有点忘记了。你先试试看行不行。
shunshine988 2009-07-06
  • 打赏
  • 举报
回复
这些都在JSP页面里做了呀(如下),也配置好了一个数据源,名为odbc_ora10g,测试也连接成功.
<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn=DriverManager.getConnection("jdbc:odbc.odbc_ora10g","Bart","Bart");
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("select * from system.emp");
%>
然后打开TOMCAT测试时就出现了如下的错误,No suitable driver没有合适的驱动,难道还需要什么jar包吗????
严重: Servlet.service() for servlet jsp threw exception
java.sql.SQLException: No suitable driver
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)

[Quote=引用 7 楼 inthirties 的回复:]
引用楼主 shunshine988 的帖子:
首先配置了一个数据源,测试连接成功.
然后写了一个JSP页面,在TOMCAT下运行,结果出现下面错误:

org.apache.jasper.JasperException: javax.servlet.ServletException: java.sql.SQLException: No suitable driver
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:541)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper…
[/Quote]
zl3450341 2009-07-06
  • 打赏
  • 举报
回复
oracle jar包吧
inthirties 2009-07-06
  • 打赏
  • 举报
回复
[Quote=引用楼主 shunshine988 的帖子:]
首先配置了一个数据源,测试连接成功.
然后写了一个JSP页面,在TOMCAT下运行,结果出现下面错误:

org.apache.jasper.JasperException: javax.servlet.ServletException: java.sql.SQLException: No suitable driver
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:541)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:417)
org.apache.jasper.servle…
[/Quote]

也需要的呀,就是最基础的那个,sun.jdbc.odbc.JdbcOdbcDriver。

而且你需要配置好必要的odbc数据源。

注意你的url的写法。

你现在还没有到后面两部,你现在是没有加载driver。所以先来第一步吧。
welyngj 2009-07-05
  • 打赏
  • 举报
回复
应该是把。我没有做过。
shunshine988 2009-07-05
  • 打赏
  • 举报
回复
你说的客户端是指oracle客户端吗?就是在oracle官方网站上下载的 10201_client_win32.zip(400多M) 解压出来的安装程序?

[Quote=引用 4 楼 welyngj 的回复:]
JDBC (Java Database Connectivity) is an API (Applications Programming Interface) that allows Java to send SQL statements to an object-relational database such as Oracle Database.

The JDBC standard defines four types of JDBC drivers:

*

Type 1. A JDBC-ODBC bridge. Software must be installed on client systems.
*

Type 2. Native methods (calls C or C++) and Java …
[/Quote]
welyngj 2009-07-05
  • 打赏
  • 举报
回复
JDBC (Java Database Connectivity) is an API (Applications Programming Interface) that allows Java to send SQL statements to an object-relational database such as Oracle Database.

The JDBC standard defines four types of JDBC drivers:

*

Type 1. A JDBC-ODBC bridge. Software must be installed on client systems.
*

Type 2. Native methods (calls C or C++) and Java methods. Software must be installed on the client.
*

Type 3. Pure Java. The client uses sockets to call middleware on the server.
*

Type 4. The most pure Java solution. Talks directly to the database by using Java sockets.
shunshine988 2009-07-05
  • 打赏
  • 举报
回复
采用JDBC-ODBC Bridge连接oracle数据库还要用安装oracle客户端(即10201_client_win32)???
书上说OCI方式需要,而JDBC-ODBC方式没说要呐????
welyngj 2009-07-05
  • 打赏
  • 举报
回复
  Windows下采用JDBC-ODBC Bridge连接oracle数据库

  1、 安装oracle客户端程序,在tnsnames.ora中配置好相应的数据库连接串文件,此处设连接串名为“dbora”。

  2、 在windows的控制面板->“数据库源ODBC”中,建立相应的用户或者系统DSN,具体方法:在安装的数据源的驱动程序选择“Microsoft ODBC for Oracle”。

  点击“完成”,在弹出的对话框中,填入如下信息:

  数据源名称:dbjdbc
  描述:jdbc数据源
  用户名称:manager -此为数据库用户名
  服务器:dbora -此即为连接串名
  其中“dbjdbc”是在java程序中要引用的名字,至此数据源dbjdbc已建立。
welyngj 2009-07-05
  • 打赏
  • 举报
回复
http://tech.it168.com/j/d/2006-05-23/200605230758703.shtml

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧