# Datenbankanbindung an mySQL und Ein-/Auslesen der Daten



## avo (20. Jun 2009)

Hallo zusammen,

ich habe mich etwas mit der Programmierung von Java beschäftigt und ein Programm zur Erfassung von Filmen, deren Ausgabe, sowie Sortierung geschrieben, mit dem offensichtlichen Problem, dass ohne Datenbank die im Array gespeicherten Daten nach dem Programmende verloren gehen.

Das möchte ich ändern und habe mich für die mySQL Datenbank entschieden, leider scheitere ich bereits an der Verbindung:

[Java]import java.sql.*;

public class DPConnect {

	public static void main(String[] args) {

		Connection conn = null;
		String url = "jdbc:mysql://141.37.122.28:3306//sp-example";
		String user = "SP202";
		String pass = "SP202";

	    try
	    {
	      Class.forName("com.mysql.jdbc.Driver");
	    }
	    catch(ClassNotFoundException cnfe)
	    {
	      System.out.println("Can't load driver: "+cnfe.getMessage());
	    }

		try {
		conn = DriverManager.getConnection(url, user, pass);
		System.out.println("Verbunden");
		}
		catch (Exception e) {
		System.err.println("Kann nicht verbinden!");
		}

		finally {
			if (conn != null) {
				try {
					conn.close();
					System.out.println("Verbindung beendet.");

				} 
				catch(Exception e) {

				}
			}
		}
	}
}[/Java]

EDIT: Die Verbindung funktioniert so jetzt einwandfrei. Ich habe vergessen die .jar Datei im eclipse Projekt einzufügen.
-----

Mein zweites Problem ist die Kommunikation zwischen Datenbank und Programm. Ist es ohne weiteres Möglich mit einfachen Befehlen Variableninhalte in Tabellenzellen zu schreiben? Beispielsweise bei dieser Benutzereingabe:

[Java]System.out.println("Bitte den originalen Titel des Films angeben: ");
myMovie.origTitle = br.readLine();[/Java]

und diese auch wieder auszulesen? :
[Java]System.out.println("Originaler Titel: "+myMovie.origTitle);[/Java]

Vielleicht stelle ich mir das zu einfach vor, aber kann man an dieser Stelle nicht soetwas wie 'Tabellenname.Tabellenspalte.ID' verwenden? Jedenfalls vom Sinn her =) 

Ich hoffe meine Fragen langweilen hier niemanden zu arg.


Vielen Dank fürs lesen..

avo


----------



## avo (21. Jun 2009)

Problem gelöst.

Vielleicht hilft dem ein oder anderen ebenfalls diese Seite:
Zugriff auf die Datenbank mit JDBC


----------



## JohannisderKaeufer (21. Jun 2009)

Bei DB schreibt man nicht in Zellen wie beispielsweise in Tabellenkalkulationen.

Man fügt hier in der Regel ganze Zeilen ein.

Hierfür erstellt man SQL-Statements, die die Informationen einer ganzen Zeile besitzen, die man dann per JDBC an die Datenbank schickt.


beste Grüsse an die HTWG in Konstanz


----------



## avo (21. Jun 2009)

Wie bekomme ich meinen Datensatz zurück? ^^

[Java]    	String stringSelectMovie = "SELECT title, genre, year, oscars FROM movie WHERE ID_movie = 1";

    	try {
    		Statement stmtSelectMovie = con.createStatement();
    		ResultSet rs = stmtSelectMovie.executeQuery(stringSelectMovie);
    		System.out.println(rs.getString(title));
    	} 
    	catch (SQLException e) {
    		e.printStackTrace();
    	}[/Java]

Das rs Object liefert mir 'com.mysql.jdbc.JDBC4ResultSet@911f71'. Welche Methode benötige ich um mir den Datensatz vernünftig ausgeben zu lassen?


----------



## avo (22. Jun 2009)

Problem gelöst -.-

[Java]rs.getString("ROW");[/Java]


----------

