Díky
už to funguje, jen nevím jak použít block finale. Píše mi to, že musím to mít v try catch. Nevíte někdo jak tomu zabránít, v případě toho posledního catch mě štve, že vždycky hodí chybu.
package DB;
import java.sql.*;
public class db01
{
String url="jdbc:odbc:myDB";
String jmeno;
String prijmeni;
static Connection dB;
Statement pozadavek;
String dotaz;
static ResultSet vysledky;
public db01()
{
connect();
}
public void connect()
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
dB = DriverManager.getConnection(url);
} catch (ClassNotFoundException v1)
{
System.err.println("Nepodařilo se zavést most JDBC/ODBC."+v1.getMessage());
System.exit(1);
} catch (SQLException v2)
{
System.err.println("Nepodařilo se připojit k databázi. "+v2.getMessage());
System.exit(2);
}
try
{
dotaz = "SELECT * FROM Studenti WHERE Jméno = 'Ferda' and ID=2";
pozadavek = dB.createStatement();
vysledky = pozadavek.executeQuery(dotaz);
} catch (SQLException v3)
{
System.err.println("Chyba SQL. "+v3.getMessage());
System.exit(3);
}
try
{
boolean zaznamy = vysledky.next();
if (!zaznamy)
{
System.out.println("Nebyla vracena žádná data");
System.exit(3);
}
do
{
jmeno=vysledky.getString(2);
prijmeni=vysledky.getString(3);
System.out.println("ID je "+vysledky.getString(1)+" a jméno: "+jmeno+" "+prijmeni+". Adresa: ");
}
while (vysledky.next());
pozadavek.close();
} catch (SQLException v4)
{
System.err.println("Chyba při zobrazení dat. "+v4.getMessage());
System.exit(4);
}
finally
{
try
{
vysledky.close();
dB.close();
} catch (Exception v5)
{
System.err.println("Chyba při ukončení spojení. "+v5.getMessage());
System.exit(5);
}
}
}
public static void main(String[] args)
{
db01 a01 = new db01();
a01.connect();
}
}
a výsledek:
ID je 2 a jméno: Ferda Srab. Adresa:
Chyba při ukončení spojení. ResultSet is closed
Kdo by věděl o nějaký radě, budu rád a moc to ocením.