简体   繁体   English

Java运行命令无法连接到Oracle数据库?

[英]Java running command cannot connect to Oracle database?

I try to connect to my local XE database.我尝试连接到我的本地 XE 数据库。 The code to connect is the following:连接代码如下:

try{
   Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "my_username", "my_password");
} // ...

Running the code in command line, I get the following error:在命令行中运行代码,我收到以下错误:

java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:@localhost:1521:xe
        at java.sql.DriverManager.getConnection(Unknown Source)
        at java.sql.DriverManager.getConnection(Unknown Source)
        at my.Login$1.actionPerformed(Login.java:46)
        at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
        at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
        at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
        at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
        at java.awt.Component.processMouseEvent(Unknown Source)
        at javax.swing.JComponent.processMouseEvent(Unknown Source)
        at java.awt.Component.processEvent(Unknown Source)
        at java.awt.Container.processEvent(Unknown Source)
        at java.awt.Component.dispatchEventImpl(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
        at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
        at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Window.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$500(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
        at java.awt.EventQueue$4.run(Unknown Source)
        at java.awt.EventQueue$4.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)

I ran it with java -cp. <file>我用java -cp. <file> java -cp. <file> , too, but it still fails with the error message above. java -cp. <file>也是如此,但它仍然失败并显示上面的错误消息。 I added ojdbc8.jar in <JAVA_HOME>\jre\lib\ext .我在<JAVA_HOME>\jre\lib\ext中添加了ojdbc8.jar I'm using Java 8.我正在使用 Java 8。

Is there any mode to fix this mistake?有什么模式可以解决这个错误吗?

You may need to register Oracle driver first (because the JDK cannot guess the appropriate driver to use, just by getting an url):您可能需要先注册 Oracle 驱动程序(因为 JDK 无法猜测要使用的适当驱动程序,仅通过获取 url):

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

Or或者

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM