1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

DB anbindung + auslesen

Dieses Thema im Forum "Java" wurde erstellt von JumpFrog, 28. April 2012.

  1. JumpFrog

    JumpFrog Grünschnabel

    hey leute,

    ich hasse es alleine stehen gelassen zu werden und dann einem noch aufgezwungen wird mit spezieller Software zu arbeiten. Naja ok...

    also wie müssen den Microsoft SQLServer nutzen:mad: darin befinden, dank der super tollen Import funktion, die Tabellen die gebracht werden und nun sollen wir ein JAVA programm schreiben um auf all die Tabellen + inhalte zuzugreifen.

    zunächst mal der einfache quelltext:

    Code (Text):
    1.  
    2.  
    3. public static void main(String[] args) {
    4.         // TODO Auto-generated method stub
    5.         try {
    6.             Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    7.         } catch (ClassNotFoundException e) {
    8.             e.printStackTrace();
    9.         }
    10.         Connection con = null;
    11.         try {
    12.             con = DriverManager.getConnection(
    13.                     "jdbc:sqlserver://<url>:1234",
    14.                     "sa", "sa");
    15.             Statement stmt = con.createStatement();
    16.  
    17.             ResultSet rs = stmt.executeQuery("SELECT * FROM Time");
    18.  
    19.             while (rs.next()) {
    20.                 System.out.printf("%s,%s %s%n", rs.getString(1));
    21.             }
    22.             rs.close();
    23.             stmt.close();
    24.         } catch (SQLException e) {
    25.             e.printStackTrace();
    26.         } finally {
    27.             if (con != null)
    28.                 try {
    29.                     con.close();
    30.                 } catch (SQLException e) {
    31.                     e.printStackTrace();
    32.                 }
    33.         }
    34.     }
    35.  
    36.  
    Mit hilfe von Squirrl kann ich ohne Probleme auf die Datenbank namens Stundenplan zugreifen und die tabellen manipulieren. Somit sollte es kein rechtliches Problem sein. Eher etwas im Quellcode. Nur leider weiß ich nicht was, da jeder etwas anderes schreibt...

    Und zu guter letzt noch Die Fehlermeldung:

    vielleicht kann mir jemand sagen was ich falsch mache. Ich jedenfalls bekomme es nur durch Stundenlanges Probieren raus, und bei nun fast 30 Grad im Zimmer macht das auf dauer keinen Spaß mehr... :(

    Danke für eure hilfe.

    LG Jumpfrog
  2. sheel

    sheel Mod # I love Asm Moderator

    Hi

    ich glaube, time ist ein reservierter Ausdruck (weil schon anders verwendet)
    und kann/sollte nicht als Tabellenname verwendet werden.
  3. JumpFrog

    JumpFrog Grünschnabel

    Danke für deine Antwort, aber daran scheint es nicht zu liegen.

    sowohl:

    als auch:

    habe ich bekommen wenn ich auf die Tabelle Zyklus zugreifen will und ich glaube nicht das Zyklus auch noch ein reservierter Namen ist
  4. sheel

    sheel Mod # I love Asm Moderator

    Stimmt, Zyklus ist nicht reserviert.

    Nächster Versuch:
    Der Datenbankname ist nicht angegeben.

    jdbc:sqlserver://<url>:1234;databaseName=hiereinsetzen
  5. JumpFrog

    JumpFrog Grünschnabel

    Code (Text):
    1. con = DriverManager.getConnection(
    2.                     "jdbc:sqlserver://<url>:1234;databaseName=Stundenplan",
    3.                     "sa", "sa");
    Es kommt die selbe Exception... :-/

    Quelltext mäßig schätze ich das alles richtig ist... liegt es vielleicht an der Rechte Vergabe... wobei jeder user mit dem ich zugreifen will mind. dbowner ist...
  6. tuney

    tuney Grünschnabel

    Hallo,

    das Problem hatte ich auchmal (bei mir lag es, dass ich das DB Schema nicht richtig angegeben hatte). An den Rechten sollte es nicht liegen. Denn er hat eine Verbindung aufgebaut und führt die SQL aus. So wie das dort oben steht, findet er das Objekt nicht. Das kann bspw. eine Tabelle sein. Bist du sicher das deine Verbindungsparameter bzgl. IP und DB Schema stimmen? Tippfehler?

    Der nächste Schritt der mir einfällt, wäre dass du dir mal die Metadaten ausgibst, ob du überhaupt auf der richtigen DB bist.

    bye
  7. JumpFrog

    JumpFrog Grünschnabel

    Hey tuney,

    Ich habe keine Verbindungsparameter angegeben gehabt außer das eine mal hier im Forum. als StandartDB für den Benutzer sollte ja auch die "Stundenplan" DB eingestellt sein. Somit macht es eigentlich die angabe von DB wie es oben zu sehen ist überflüßig. (zumindest aus meiner Logik heraus)

    Ich habe gerade versucht mir Metadaten ausgeben zu lassen, aber schlau werde ich aus den ausgaben auch nicht. Kannst du mir vielleicht sagen was ich da schreiben müsste?

    LG Jumpfrog

    EDIT: OK, Problem erledigt... an den Tabellen wurde durch den blöden microsoft importer ein $ am ende rangehangen, welchen ich immer gekonnt übersehen habe... :-/ Danke für eure Hilfe :)
    Zuletzt bearbeitet: 30. April 2012
  8. tuney

    tuney Grünschnabel

    Hallo Jumpfrog,

    prima das sich das erledigt hat. Vielleicht noch als Tipp. Für MS DBs gibt es das SQL Server Database Management Studio. Dort hat man m.E. den besten Überblick (Welche Instanzen am Laufen sind und wo welche Table zu finden ist). Bei mir damals war die DB allerdings in einem gesicherten Netzwerk, so dass ich von außen nicht darauf zugreifen konnte mit dem Tool. Also hab ich den Netzwerkadmin gefragt ob er mir die Informationen nochmal zuschicken kann. Dann hatte ich gesehen, dass ich auf der falschen DB war. Sowas kosten immer verdammt viel Nerven & Zeit.

    bye

Diese Seite empfehlen