sql >> Databáze >  >> RDS >> Oracle

java.sql.SQLException:Io výjimka:Dostal mínus jedna z volání čtení během spojení JDBC s oracle

Za prvé, adresa URL připojení je nesprávná. Post 8080 běžně používá webový server jako Apache Tomcat. Samotný Oracle používá výchozí port 1521. Viz také tuto dokumentaci Oracle JDBC .

Dále jste zapomněli zavolat ResultSet#next() . Tím se kurzor nastaví na další řádek v sadě výsledků. Sada výsledků je vrácena s kurzorem před první řada. Jakékoli getXXX() volá na ResultSet selže, pokud nepohnete kurzorem.

Pokud očekáváte více řádků v sadě výsledků, musíte použít while smyčka:

resultSet = statement.executeQuery();
while (resultSet.next()) {
    String columnname = resultSet.getString("columnname");
    // ...
}

Nebo pokud očekáváte pouze jeden řádek, můžete také pokračovat s if prohlášení:

resultSet = statement.executeQuery();
if (resultSet.next()) {
    String columnname = resultSet.getString("columnname");
    // ...
}

Další rady a příklady použití základní JDBC správným způsobem (také v JSP/Servlet) můžete najít tento článek užitečný. Způsob, jakým jste například uzavřeli příkaz a připojení, je náchylný k úniku zdrojů. Také načítání ovladače JDBC na požadavek GET je zbytečně drahé. Stačí to udělat jednou během spouštění aplikace nebo inicializace servletu.



  1. LazyInitializationException se pokouší získat líně inicializovanou instanci

  2. Vložení více obrazových souborů do databáze

  3. Převod časových razítek v Unixu se liší v Mysql a Oracle

  4. Jak navrhnout databázi mysql pro více tenantů