簡體   English   中英

使用Java連接到Oracle數據庫

[英]Connection to Oracle Database with Java

我無法連接到Oracle database server 這是代碼:

import java.util.*;
import java.sql.*;
import java.io.IOException;

public class Knigi {
public static void main(String[] args) {


  String baza_DRIVER="oracle.jdbc.driver.OracleDriver";
  String baza_STRING="jdbc:oracle:thin:@localhost:1521:";
  String baza_USERNAME="knigi";
  String baza_PASSWORD="knigi";

  Locale.setDefault(Locale.ENGLISH); // Vazhno e bidejkji Oracle treba da znae kakvi poraki da pojavuva

  try {
      Driver Driver = (Driver)Class.forName(baza_DRIVER).newInstance(); 
      Connection Conn = DriverManager.getConnection(baza_STRING,baza_USERNAME,baza_PASSWORD);

      PreparedStatement Statement = Conn.prepareStatement("SELECT * FROM zhanrovi");
      ResultSet zhanrovi = Statement.executeQuery();
      boolean isEmpty = !zhanrovi.next();
      boolean hasData = !isEmpty;
      while (hasData) {
        System.out.println("Zhanr: "+zhanrovi.getString("ZH_IME"));

        PreparedStatement Statement2 = 
           Conn.prepareStatement("select * from knigi where ZH_BR = ?");
        Statement2.setInt(1,zhanrovi.getInt("ZH_BR"));
        ResultSet knigi = Statement2.executeQuery();
        boolean isEmpty2 = !knigi.next();
        boolean hasData2 = !isEmpty2;
        if (isEmpty2) {
          System.out.println("      - nema knigi");
        } else {
          System.out.println("      - Knigi:");
        };
        while (hasData2) {
          System.out.println(
            "                 " +
            knigi.getString("ISBN") +
            " - " +
            knigi.getString("NASLOV")+" ");
          hasData2=knigi.next();
        }
        knigi.close();
        hasData=zhanrovi.next();
      }
      zhanrovi.close();
      Conn.close();
    } catch (Exception e) {
      System.out.println(e);
    }
}

}

我收到此消息:

java.sql.SQLException: Io exception: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=186646784)(ERR=12504)(ERROR_STACK=(ERROR=(CODE=12504)(EMFI=4))(ERROR=(CODE=12504)(EMFI=4))))

在學校中,此示例有效。 問題出在哪兒??

您的數據庫服務器是否在本地計算機上運行:localhost:1521?

您的學校計算機上可能正在運行數據庫服務器,但您的家庭計算機根本沒有。

數據庫連接URL“ jdbc:oracle:thin:@localhost:1521:”通常不是硬編碼的。 當您在另一台計算機上運行代碼時,將其指向localhost幾乎總是會使它失敗。

試試這個,可能有幫助

  jdbc:oracle:thin://<host>:<port>/<SERVICE_NAME>

service_name =數據庫的SID,通常是ORCL。

干杯,

當您收到此類“連接拒絕”錯誤時,主要發生在三種情況

  1. 您指定的host:port上沒有運行數據庫服務器,即localhost:1521
  2. 您輸入的密碼錯誤。
  3. 您指定的端口被防火牆阻止,或者您位於某些不允許您連接到該端口的代理后面。

您可以手動嘗試從命令行連接到數據庫,並查看連接是否處於活動狀態。

問題已經關閉...由於我的教職員工服務器已關閉教職員工網絡外部的連接,因此我不得不進行隧道傳輸,他們還告訴我密碼已更改.... btw tnx,他們為我提供了幫助連接到我的本地服務器並訪問我的本地數據庫。

再次感謝同伴^ _ ^

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM