Ahoj, chtěl bych poradit s SQL dotazem v Javě. Na řádku 79 mně to vypisuje hlášku "unreported exception java.sql.SQLException; must be caught or declared to be thrown".
Když využiju možnost NetBeans "Surround Block with try-catch" tak se dolů pod kód připíše část:
=====================
catch (SQLException ex) {
Logger.getLogger(Data5.class.getName()).log(Level.SEVERE, null, ex);
=====================
Tomu ale já plně nerozumím a rád bych si vyjímku napsal sám a v nějakém jednoduchém, začátečníkovi pochopitelném formátu jako ty ostatní vyjímky. Je to možné nebo zkrátka musím použít nabídku NetBeans?
Můj kód je níže.
Díky, N.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
public class Main {
public static void main(String[] args) {
Data5 apl = new Data5();
}
}
class Data5 extends JFrame {
JTabbedPane tabbedPane = new JTabbedPane();
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();
JPanel panel3 = new JPanel();
JPanel panel4 = new JPanel();
JPanel panel5 = new JPanel();
JPanel panel6 = new JPanel();
JButton button1 = new JButton("Start");
TextField textfield1 = new TextField("1",20);
public Data5 () {
super ("WH Space Calculator");
setSize (700,800);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible (true);
getContentPane().setLayout (new BorderLayout());
getContentPane().add(tabbedPane,BorderLayout.CENTER);
setSize (701,800);
tabbedPane.addTab("Action tracker",panel1);
tabbedPane.setSelectedIndex(0);
tabbedPane.addTab("Report2",panel2);
tabbedPane.addTab("Report3",panel3);
tabbedPane.addTab("..",panel4);
tabbedPane.addTab("..",panel5);
panel1.add(textfield1);
panel1.add(button1);
button1.addActionListener (new ActionButton1());
}
class ActionButton1 implements ActionListener {
public void actionPerformed(ActionEvent e) {
String url = "jdbc:odbc:databaze1";
String jmeno;
String tisk;
Statement pozadavek = null;
ResultSet vysledek = null;
Connection dB = null;
try {
Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver");
dB = DriverManager.getConnection(url);
}
catch (ClassNotFoundException v) {
System.err.println("Nepodařilo se zavést most JDBC/ODBC." + v.getMessage());
System.exit(1);
}
catch (SQLException v) {
System.err.println("Nepodařilo se připojit k databázi." + v.getMessage());
System.exit(2);
}
try {
String dotaz = "Select * FROM Users WHERE Heslo = 'password'";
pozadavek = dB.createStatement();
vysledek = pozadavek.executeQuery(dotaz);
}
catch (SQLException v) {
System.err.println("Chyba SQL." + v.getMessage());
System.exit(3);
}
boolean zaznamy = vysledek.next();
if (!zaznamy) {
System.out.println("Nebyla vrácena žádná data");
System.exit(4);
}
try {
do {
jmeno = vysledek.getString(1);
tisk = jmeno;
textfield1.setText(tisk);
}
while(vysledek.next());
pozadavek.close();
}
catch (SQLException v) {
System.err.println("Chyba při zobrazaní dat." + v.getMessage());
System.exit(5);
}
finally {
dB.close();
}
}
}
}