Java 没有找到适合“jdbc:oracle:thin:@**** “oracle/jdbc/driver/OracleDriver”的驱动程序;

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/19922879/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-12 21:33:35  来源:igfitidea点击:

No suitable driver found for "jdbc:oracle:thin:@**** "oracle/jdbc/driver/OracleDriver";

javaoraclejdbc

提问by Priyan RockZ

here is my java code

这是我的java代码

public static Map<String,String> propertyFileReader() {
    Map<String, String> map=new HashMap<String, String>();
    Properties prop = new Properties();
    try {
        InputStream inputStream = Util.class.getClassLoader().getResourceAsStream("jdbc.properties");
        prop.load(inputStream);

        final String DB_DRIVER= prop.getProperty("DB_DRIVER");
        final String DB_CONNECTION = prop.getProperty("DB_CONNECTION2");
        final String DB_USER = prop.getProperty("DB_USER");
        final String DB_PASSWORD = prop.getProperty("DB_PASSWORD");

        map.put("DB_DRIVER",DB_DRIVER);
        map.put("DB_CONNECTION",DB_CONNECTION);
        map.put("DB_USER",DB_USER);
        map.put("DB_PASSWORD",DB_PASSWORD);

    } catch (IOException e) {
        e.printStackTrace();
    }

    return map;
}

private static Connection getDBConnection() {
    Map<String , String > map=new HashMap<String, String>();
    map=propertyFileReader();
    String DB_DRIVER=map.get("DB_DRIVER");
    String DB_CONNECTION= map.get("DB_CONNECTION");
    String DB_USER=map.get("DB_USER");
    String DB_PASSWORD=map.get("DB_PASSWORD");
    Connection dbConnection = null;
    try {
        Class.forName(DB_DRIVER);
    } catch (ClassNotFoundException e) {
        System.out.println(e.getMessage());
    }
    try {
        dbConnection = DriverManager.getConnection(DB_CONNECTION,DB_USER,DB_PASSWORD);
        return dbConnection;
    } catch (SQLException e) {
        System.out.println(e.getMessage());
    }
    return dbConnection;
}

here is my properties file

这是我的属性文件

DB_DRIVER = "oracle.jdbc.driver.OracleDriver";
DB_CONNECTION2 = "jdbc:oracle:thin:@10.2.5.23:1521:dbslic";
DB_USER = "TSR_MOBILE";
DB_PASSWORD = "TSR_MOBILE";

and i added ojdbc6.jar to my buildpath [tried with ojdbc14.jar also]

我将 ojdbc6.jar 添加到我的构建路径 [也尝试使用 ojdbc14.jar]

but there is a error says like below

但有一个错误,如下所示

No suitable driver found for "jdbc:oracle:thin:@10.2.5.23:1521:dbslic";
"oracle/jdbc/driver/OracleDriver";
No suitable driver found for "jdbc:oracle:thin:@10.2.5.23:1521:dbslic";
[ERROR] Exception occurred while trying to invoke service method loginBlock
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.java:212)
    at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:117)
    at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
    at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:114)
    at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:181)
    at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:172)
    at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:146)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:643)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
    at mainService.TSR_WEB_SERVICE.loginBlock(TSR_WEB_SERVICE.java:416)
    ... 25 more

please help me to sort out this issue

请帮我解决这个问题

采纳答案by Aniket Kulkarni

You are using wrong package to refer OracleDriverclass
Change

您正在使用错误的包来引用OracleDriver
更改

oracle.jdbc.driver.OracleDriver  

To

oracle.jdbc.OracleDriver  

From oracle docsclass definition

来自 oracle docs类定义

public class OracleDriver
              extends oracle.jdbc.driver.OracleDriver

The Oracle JDBC driver class that implements the java.sql.Driverinterface.

实现java.sql.Driver接口的 Oracle JDBC 驱动程序类。

回答by shazin

Use this as Oracle Driver

将此用作 Oracle 驱动程序

oracle.jdbc.OracleDriver 

instead of

代替

oracle.jdbc.driver.OracleDriver