Java probleme mit mysql db!

NaTaS77

Lt. Commander
Registriert
Okt. 2006
Beiträge
1.255
hallo

ich möchte ein kleines vokal program schreiben und die vokabel sollen in einer mysql datenbak gespeicher werden so


mysql ist installiert und ich bekomme auch die verbindung hin aber sobald ich velues in die db einfügen will geht es nicht!

hier der connector
Code:
import java.sql.*;

class Connector {
	private static Connection verbindung;
	private static String  db ="jdbc:mysql://localhost/de";
	private static String  user ="root";
	private static String  pw ="";
	
	static {
		try {
			Class.forName("com.mysql.jdbc.Driver");
			verbindung = DriverManager.getConnection(db, user, pw);
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch(SQLException e1) {
			e1.printStackTrace();
		}
	}
	
	public static Statement getStatement() throws SQLException {
		return verbindung.createStatement();
	}
	
}

und hier die source
Code:
[
import java.sql.*;
import java.util.*;

public class vokabeln {

	public static void main(String[] args) {
		System.out.println("Bitte Geben sie ein vokabel ein");

		Scanner sc = new Scanner(System.in);

		String key = sc.nextLine();
		String key2 = sc.nextLine();

		if (key != null & key2 != null) {

			try {

				Statement stm = Connector.getStatement();
				String query = "insert into vokabel(vorkabel,beschreibung) values('"
						+ key + "','" + key2 + "')";
				System.out.println(query);

				System.out.println("datensatz eingefügt");
				stm.close();

			} catch (Exception e) {

				e.printStackTrace();
			}

		}

		System.out.println("program ende");

	}

}

das program läuft sauber aber die velues sind in der db nicht zu sehen!
er sagt mir aber das er die eingefügt hat!
 
Zuletzt bearbeitet:
also weiß nun nicht ob du es irgendwie falsch übertragen hast, aber ist "vorkabel" korrekt? ^^ müsste aber eigentlich einen Fehler geben wenn diese Spalte nicht vorhanden wäre..
 
das ist es ja ich fange alle exceptions ab

das würde mir zur laufzeit sicher sagen wenn was nicht stimmt aber der fügt die velues nicht ein!

Weiß auch nicht warum
 
Wenn ich mich nicht verschaut habe, dann liegt das daran, dass das Programm gar keinen Eintrag in die MySQL vornimmt.

Es wird ein String mit dem Namen "query" erstellt und das Einzigste was mit ihm gemacht wird, ist ihn über die Konsole auszugeben.

Da fehlt stm.executeQuery(query); damit der auch den Query an die Datenbank übergibt.
 
Genau, es fehlt das executeUpdate();
executeQuery(); gibt nur ein ResultSet zurück und ist somit nur für Abfragen zu gebrauchen!

Folgende Lösung hab ich mal benutzt - Musst mal schauen inwiefern du das nehmen kannst ;)
Code:
public int insertData (String pQuery) throws SQLException {
    stmt = con.createStatement();    // Erzeugen eines Statements
    inserts = stmt.executeUpdate(pQuery);    // Ausführen des Querys
    return inserts;    // Rückgabe der Anzahl von Änderungen / Eingefügten Datensätzen
}
 
Zuletzt bearbeitet:
Zurück
Oben