JDBC连接(从Java到Oracle)的连接问题

时间:2018-06-28 12:00:54

标签: java oracle jdbc

我正在尝试将Java中的值提取到Oracle中的表中,但是遇到以下问题:

错误:

> at java.lang.ClassLoader.loadClass(Unknown Source)    at
> sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)    at
> java.lang.ClassLoader.loadClass(Unknown Source)   at
> java.lang.Class.forName0(Native Method)   at
> java.lang.Class.forName(Unknown Source)   at
> com.example.example1.query.demo.QueryDataNoPayload.lambda$1(QueryDataNoPayload.java:168)
>   at java.lang.Iterable.forEach(Unknown Source)   at
> com.example.example1.query.demo.QueryDataNoPayload.main(QueryDataNoPayload.java:94)
> java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver     at
> java.net.URLClassLoader.findClass(Unknown Source)

我正在使用的代码如下

result.forEach(record -> 
          {
              String xml = record.getPayload().get();

              Summary summary = SUMMARIZER.summarize(xml);

              String a1 = (String) summary.getFields().get("gs") ;
              String a2 = (String) summary.getFields().get("dsf");
              String a3 = (String) summary.getFields().get("asOfDate");

              //Loading and registering Oracle database thin driver                
                try {
                    Class.forName("oracle.jdbc.driver.OracleDriver");
                    //Creating a connection between Java program and Oracle database.
                    Connection con;
                    con = DriverManager.getConnection("jdbc:oracle:thin:@Classified details");
                    //Creating a Statement object to excute SQL statements 
                    Statement sql= con.createStatement();
                    //Executing a SQL INSERT query using executeUpdate()  method of Statement object.
                    sql.executeUpdate("INSERT INTO  example__DATA.Execution VALUES("+"'"+a1+"'"+","+"'"+a2+"'"+","+"'"+a3+"'"+")");

                }
                catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (ClassNotFoundException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

请帮助我了解问题在哪里?

2 个答案:

答案 0 :(得分:0)

您是否在类路径中正确添加了Oracle lib JAR?

如果您将jar正确添加到类路径中,请尝试使用“ oracle.jdbc.OracleDriver”。

答案 1 :(得分:0)

java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver

错误的上一行显示未找到所提及的类。

请检查JVM ClassPath中是否存在ojdbc jar。最好是ojdbc6.jar

ojdbc jar中也存在2个驱动程序类

- oracle.jdbc.driver.OracleDriver
- oracle.jdbc.OracleDriver

代码对这两个都适用。