Oracle 11g不支持JDK 1.7

时间:2017-03-19 14:39:09

标签: java servlets jdbc

我正在使用Tomcat服务器8

我在Lib中添加了Ojdbc7.jar

并使用Oracle 11g(11.2.0.2)版本

我的代码是:

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

import java.sql.*;

public class PrintForm extends HttpServlet
{
    public void doGet(HttpServletRequest req, HttpServletResponse res)throws IOException, ServletException
    {
        res.setContentType("text/html");
        PrintWriter out = res.getWriter();

        //Variables declaration
        String emp_name = req.getParameter("name");
        String s = "INSERT into Emp values(?,?)";

        try{
            //Making connection with Oracle

            Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","system","oracle");
            DriverManager.registerDriver (new oracle.jdbc.OracleDriver());

            //Inserting data into table
            PreparedStatement pst = con.prepareStatement(s);
            pst.setInt(1,1);
            pst.setString(2,emp_name);
            pst.executeUpdate();

            con.close();
        }catch(Exception e){
            out.println(e);
        }       
    }
}

这就是投掷,

java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:@localhost:1521:xe 

这个例外。

那么我应该使用什么驱动程序或JDK版本? 当前版本是1.7

4 个答案:

答案 0 :(得分:1)

首先需要注册驱动程序

  DriverManager.registerDriver (new oracle.jdbc.OracleDriver());

请阅读oracle驱动程序的javadocs。它解释了这一点,以及如何在不同的场景中建立连接:https://docs.oracle.com/cd/E11882_01/appdev.112/e13995/oracle/jdbc/OracleDriver.html

此外,如果您在线搜索错误No suitable driver found for,您会发现大量网站解释如何解决此问题(以及其他方面)中的问题。

答案 1 :(得分:1)

您应该在创建连接之前先加载驱动程序:

Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", 
                 "system", "oracle");

你可以在这里找到一个很好的教程:Connect to Oracle DB via JDBC driver

答案 2 :(得分:1)

您必须在Class.forName("oracle.jdbc.driver.OracleDriver");

之前添加Connection con = D....

答案 3 :(得分:1)

根据Oracle JDBC FAQ

  • 如果您使用的是带有Java 8,7或6的Oracle 11.2或11gR2,那么您应该使用ojdbc6.jar。 (需要注意的是,JDK7和JDK8仅在11.2.0.3和11.2.0.4中受支持。)
  • 如果您将Oracle 11.2或11gR2与Java 5一起使用,则应使用ojdbc5.jar。
  • 如果您将Oracle 12.1或12cR1与Java 7和8一起使用,则应使用ojdbc7.jar
  • 如果您将Oracle 12.1或12cR1与Java 6一起使用,则应使用ojdbc6.jar
  • 如果您将Oracle 12.2或12cR2与Java 8一起使用,则应使用ojdbc8.jar。
  • 如果您使用的是带有Java 8到11的Oracle 18.3,那么您应该使用ojdbc8.jar。

以下内容已从常见问题解答中删除,因为除“持续支持”计划外,不再支持Oracle 11.1及更早版本:

  • 如果您将Oracle 11gR1与Java 6一起使用,那么您应该使用ojdbc6.jar。
  • 如果您将Oracle 11gR1与Java 5一起使用,那么您应该使用ojdbc5.jar。

您正在使用11gR2,因此您需要ojdbc6.jar,但请注意有关支持Java 7和Java 8的Oracle数据库版本的警告。

建议使用与您的Oracle DB版本兼容的最新版本的Java;即Java 8.(Java 7及更早版本已超过其“生命终结”......除非您拥有Oracle Java支持合同。)