Hallo allerseits,
ich habe ein Problem, an dem ich schon ein bisschen länger sitze.
Ich schreibe ein Programm, womit man aus einer Datenbank Mitarbeiter auslesen kann (und auch später eintragen soll). Es gibt einmal eine GUI Klasse und eine Datenbankklasse. Mit Xampp simuliere ich eine MySQL-Datenbank in welcher eine Mitarbeitertabelle ist, in der 6 Spalten sind (davon 2 Integerspalten).
Erst wird auf Buttonklick ein Textfeld ausgelesen und gepfüft, ob der eingegebene Text eine Integer ist. Wenn es keine Zahl ist, wird ein Text anstatt eine Zahl übergeben.
An diese Methode (in der Klasse DataBase) werden die Parameter übergeben und die Datenbank abgefragt:
Ich hab noch Parallel eine Abfrage (wie oben schon erwähnt), bei der Text übergeben wird, welche auch funktioniert. Nur wenn eine Zahl übergeben wird funktioniert gar nichts.
Ist da irgendwo ein Fehler in meiner SQL Abfrage oder in meinem Code?
ich habe ein Problem, an dem ich schon ein bisschen länger sitze.
Ich schreibe ein Programm, womit man aus einer Datenbank Mitarbeiter auslesen kann (und auch später eintragen soll). Es gibt einmal eine GUI Klasse und eine Datenbankklasse. Mit Xampp simuliere ich eine MySQL-Datenbank in welcher eine Mitarbeitertabelle ist, in der 6 Spalten sind (davon 2 Integerspalten).
Erst wird auf Buttonklick ein Textfeld ausgelesen und gepfüft, ob der eingegebene Text eine Integer ist. Wenn es keine Zahl ist, wird ein Text anstatt eine Zahl übergeben.
Java:
public void actionPerformed(ActionEvent e) {
if(e.getSource()==search){
boolean ja = isNumeric(t1.getText());
DataBase db = new DataBase();
if(ja==true){
int nummer = Integer.parseInt(t1.getText());
db.abfragekurznr(nummer);
}else{
db.abfragekurztext(t1.getText());
}
}
An diese Methode (in der Klasse DataBase) werden die Parameter übergeben und die Datenbank abgefragt:
Java:
public void abfragekurznr(int a){
int zahl = a;
try{
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
con = DriverManager.getConnection("jdbc:mysql://localhost/javatest", "root", "");
stmt = con.createStatement();
rs = stmt.executeQuery("SELECT * FROM mitarbeiter WHERE ('ID' = "+zahl+" OR 'Alter' = "+zahl+")");
while (rs.next()){
System.out.println("ID: "+rs.getString(1));
System.out.println("Vorname: "+rs.getString(2));
System.out.println("Nachname: "+rs.getString(3));
System.out.println("Alter: "+rs.getString(4));
System.out.println("Adresse: "+rs.getString(5));
System.out.println("Bereich: "+rs.getString(6));
}
stmt.close();
con.close();
}catch(SQLException e){
e.printStackTrace();
}
}
Ich hab noch Parallel eine Abfrage (wie oben schon erwähnt), bei der Text übergeben wird, welche auch funktioniert. Nur wenn eine Zahl übergeben wird funktioniert gar nichts.
Ist da irgendwo ein Fehler in meiner SQL Abfrage oder in meinem Code?