• 05.06.2024, 20:25
  • Registrieren
  • Anmelden
  • Sie sind nicht angemeldet.

 

Problem mit Java und Zugriff auf Access-DB

Dienstag, 1. November 2005, 13:30

Hi,
da wir in der schule gerade SQl und java lernen, dachte ich mir ich könnte das doch ein wenig kombinieren.
nach ein bisschen googlen schaffe ich es auch nun mich mit der db zu verbinden, tabellen erzeugen usw.

Nur habe ich ein Problem..
Hier der Code:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public void mouseClicked(java.awt.event.MouseEvent e) {    
                               try {
                                    Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
                                  }
                                  catch ( ClassNotFoundException x ) {
                                    System.out.println( "Fehler bei ODBC-JDBC-Bridge" + x );
                                    return;
                                  }
                                  java.sql.Connection conn;
                                  Statement stmt;
                                  ResultSet rSet;
                                  try
                                  {
                                    String url = "jdbc:odbc:lan";
                                    conn = DriverManager.getConnection(url,"user","user");
                                    stmt = conn.createStatement();
                                    String name = textField.getText();
                                    String mail = textField1.getText();
                                    
                                    String sqlQuery = "INSERT INTO data(name,mail) VALUES(\""+name+"\",\""+mail+"\")";
                                   // String sqlQuery = "SELECT name, mail FROM data ";
                                    //String sqlQuery = "DROP TABLE data;
                                    rSet = stmt.executeQuery(sqlQuery);
                                    while ( rSet.next() )
                                      System.out.println ( rSet.getString(1) + "\t" + rSet.getString(2) );
                                    stmt.close();
                                    conn.close();
                                  }
                                  catch ( SQLException q )
                                  {
                                    System.out.println( "Fehler bei Tabellenabfrage" + q );
                                    return;
                                  }
                        }


Die asukommentierten Zugriffe auf die DB funktionieren, die INSERT INTO nicht.
Ich erhalte immer folgende fehlermeldung:

Quellcode

1
Fehler bei Tabellenabfragejava.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 2 Parameter wurden erwartet, aber es wurden zu wenig Parameter übergeben.


Komisch ist auch, dass ein SELECT * FROm nur ohne WHERE-Klausel geht, sonst erhalte ich den gleichen Fehler...

Hoffe jmd kann mir Helfen

Gruß blue_dragon_italy

Re: Problem mit Java und Zugriff auf Access-DB

Dienstag, 1. November 2005, 14:02

du benutzt INSERT auch verkehrt. die syntax lautet etwa wiefolgt:

Quellcode

1
2
3
INSERT INTO tabellenname
(id, vorname, nachname)
VALUES (1, 'peter', 'lustig');


SELECT funktioniert natürlich auch mit WHERE-klausel, die muss aber natürlich auch richtig sein und sinn machen.

schau doch mal in die online-/offline-SQL-dokumentation deines vertrauens und möglichst deines datenbankherstellers.
wenn möglich solltest du dir auch für längerfristige SQL-action dieses buch zulegen, das mir ein treuer begleiter in allen SQL-lebenslagen ist: http://www.terrashop.de/89721340A/artikel.php


weiterhin ist die folgende site ganz praktisch: http://javaalmanac.com/egs/?
dort findest du nach paketen geordnet beispiele für gängige implementierungen wie das lesen/schreiben von dateien, arbeiten mit XML, SQL, usw. - also einfach mal reinschauen, wenn du eine standardaufgabe erledigen willst.

ach: und gewöhne dir die leerzeichen direkt innerhalb von runden klammern ab, also
while (blah) {
statt
while ( blah ) {

als IDE empfehle ich dir übrigens tunlichst eclipse! da brauchst du das eclipse-platform- und das eclipse-JDT-paket. nach dem entpacken erstellst du ein neues java-projekt und der spaß kann losgehen.
für ganz kleine sachen tut es dann eventuell noch der JCreator oder JOE (der aber offenbar eingestellt wurde).