# SQL Abfrage Tabelle nur in ""



## Waldi (10. Jan 2007)

Hallo

Ich habe ein kleines Problem. Habe mir jetzt ganz stolz eine PostGres DB eingerichtet eine Tabelle angelegt und Daten eingegeben.

Mach ich jetzt

SELECT * FROM Person WHERE PeID = 1;

Meckert er das person nicht gefunden werden kann.

Wenn ich aber 

SELECT * FROM "Person" mache, geht das.



Sowas kann ich ja aber schlecht im SQL String schreiben. Ich habe schon einige Beispiele angeschaut und die haben des nie mit "" schreiben müssen. Was mache ich falsch?? Ich hoffe trotz das dies ein Java Forum ist kann mir einer helfen.


----------



## Guest (10. Jan 2007)

Nimm dir das mal als Vorlage. (Lass den Treiber das richtige Format bestimmen.)
	
	
	
	





```
List<Person> list = new ArrayList<Person>();
Connection connection = null;
PreparedStatement stmt = null;
try
{
   connection = ...; // Connection holen, woher auch immer (ServiceLocator)
   stmt = connection.prepareStatement("SELECT * FROM Person WHERE PeId = ?");
   stmt.setInt(1, 1); // Zweiter Parameter ist die Id, der erste ist Index im Statement

   ResultSet result = stmt.getResultSet();
   while(result.next())
   {
      list.add(
         new Person(
            result.getString("vorname")
           ,result.getString("nachname")
           ,...
         )
      )
   }
}
catch (SQLException e)
{
   // Fehler loggen und Fehlerbehandlung!
}
finally
{
   try {
      if ( stmt!=null )
         stmt.close();
   }
   catch(Exception e) {
      // Fehler loggen und Fehlerbehandlung!
   }
   try {
      if ( connection!=null )
         connection.close();
   }
   catch(Exception e) {
      // Fehler loggen und Fehlerbehandlung!
   }
}
return list;
```


----------



## Guest (10. Jan 2007)

:shock: Noch, das hier in der neunten Zeile, sonst passiert da nicht viel 

```
stmt.executeQuery();
```


----------



## Waldi (11. Jan 2007)

Danke Gast. Bin gerade in der Schule und kann nicht den Quellcode von mir hier einsetzen. Ich kann auf den ersten Blick nicht sehen wo der Unterschied zu meinem sein soll. 

Ich habe ja mit meinem PGAdmin zur Kontrolle auch schon eine Abfrage auf meine Datenbank abgesetzt. Da musste ich den Tabellennamen auch schon in "" setzen. Als Treiber habe ich den JDBC Treiber vom Typ 3 genommen. Vielleicht ist da was nicht richtig?

Allgemein zum JDCB Treiber: Welcher ist der beste? Ich habe bei Wikipedia gelesen das der Typ 3 der beste für Internetsachen ist. Irgendwo anderst (Ich weis nicht wo) habe ich gelesen das Typ 4 für Internetlösungen besser geeignet ist und Typ 3 für Intranet Lösungen. Was stimmt jetzt?

Wäre cool wenn mir an dieser Stelle das auch noch einer schnell erörtern könnte.

Vielen Dank

Waldi


----------



## Waldi (14. Jan 2007)

Also ich habe die Lösung für mein "" Problem. Tabellen dürfen anscheinend nicht mit Großbuchstaben beginnen. Ich habe die Person in person geändert. Funktioniert alles perfect.


----------

