Java:数据库连接的代码有问题

Java:数据库连接的代码有问题,java,oracle,jdbc,Java,Oracle,Jdbc,我想编译这个Java代码。这样我就可以连接到本地Oracle数据库。 但是我的代码不能正常工作。它失败于: Driver myDriver = new oracle.jdbc.driver.OracleDriver(); 你能告诉我怎么换这条线吗 package DB_Oracle_Connection; import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManager; import java

我想编译这个Java代码。这样我就可以连接到本地Oracle数据库。 但是我的代码不能正常工作。它失败于:

Driver myDriver = new oracle.jdbc.driver.OracleDriver();
你能告诉我怎么换这条线吗

package DB_Oracle_Connection;

import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;

public class dbconf {

private String connstr;
private Connection connect;
public Connection getConnection() throws SQLException {
        connstr = "jdbc:oracle:thin:@localhost:1521:orcl";

        try {
                String uname = "scott";
                String pass = "tiger";

                Driver myDriver = new oracle.jdbc.driver.OracleDriver();
                DriverManager.registerDriver( myDriver );                  


                connect = DriverManager.getConnection(connstr, uname, pass);

        } catch (Exception e) {
            System.out.println(e.toString());
        }

            return connect;
    }
}

使用Class.forName加载驱动程序。 请参阅下面的代码

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class Dbconf {

    private String connstr;
    private Connection connect;

    public Connection getConnection() throws SQLException {
        connstr = "jdbc:oracle:thin:@localhost:1521:orcl";

        try {
            String uname = "scott";
            String pass = "tiger";

            Class.forName("oracle.jdbc.driver.OracleDriver");

            connect = DriverManager.getConnection(connstr, uname, pass);

        } catch (Exception e) {
            System.out.println(e.toString());
        }

        return connect;
    }

驱动程序的类路径应为oracle.jdbc.OracleDriver(),而您将其编写为oracle.jdbc.Driver.OracleDriver()

所需代码如下:

Class.forName("oracle.jdbc.driver.OracleDriver"); 
connect = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","scott","tiger");
注意,类路径中需要Oracle JDBC驱动程序。您可以下载与您的Oracle版本对应的驱动程序,例如check

下载后,您可以执行以下三项操作之一:

  • 把它放在jre/lib/ext文件夹中
  • 如果系统中没有名为CLASSPATH的环境变量,请创建一个,并将驱动程序的路径(jar文件)添加到CLASSPATH中
  • 如果在命令提示符下运行程序,可以使用命令,
    set classpath=%classpath%;。;驱动程序jar文件的路径

  • 错误消息到底是什么?按照@ShivamPuri的建议,从应用程序日志中添加错误的stacktrace。我已将thje值更改为Driver myDriver=oracle.jdbc.OracleDriver();但问题是一样的。我已经更改了我的代码类.forName(“oracle.jdbc.driver.OracleDriver”);这就解决了我的薪酬问题。但是当我执行我的程序时,我得到了错误java.lang.ClassNotFoundException:oracle.jdbc.driver.OracleDriverAd在JAR下面到你的类路径。您好,我必须在eclipse中为我的项目添加ojdbc8.jar。现在我可以连接到我的数据库了。非常感谢。我已经下载了该文件并将其放到C:\jre\lib\ext。然后创建了一个新的环境变量CLASSPATH,其值为C:\jre\lib\ext。但我的问题仍然是,我收到了相同的错误消息。当我执行java代码Hello时,我必须在exclipse中添加jar文件。之后我得到了java.sql.SQLException:ORA-28040:No匹配的身份验证协议Hello我不得不在eclipse中为我的项目添加ojdbc8.jar。现在我可以连接到我的数据库了。谢谢大家!@user12467638-我希望解决方案对您有效。不要忘记接受答案,这样将来的访问者也可以自信地使用解决方案。检查以了解如何做。如有任何疑问/问题,请随时发表评论。