Java & MySQL

Status
Nicht offen für weitere Antworten.
Hallo allerseits!

Habe auf der Suche nach einem guten Java-Forum euch gefunden und hoffe, dass ihr auch mir so gut weiterhelfen könnt, wie den vielen anderen hier :D.

Zu meinem Problem: Im Rahmen eines Informatikprojektes an meiner Schule wurde ich aufgrund meiner jahrelangen Erfahrung in PHP auserkoren, eine SQL-Klasse zu schreiben, die den Zugriff auf eine MySQL-Datenbank (remote || local) ermöglicht. SQL ist ja kein Problem, aber SQL und Java...nun ja - Neuland für mich.

Ich habe nun mittels

Code:
	public void Sql(String host, String user, String password, String database){ 
	
		try { 
		
			Class.forName("com.mysql.jdbc.Driver").newInstance(); 
		
		} 
		
		catch (Exception ex) { 
		
			// error 
		
		} 
		
		try { 
		
			Connection conn = DriverManager.getConnection("jdbc:mysql://"+host+"/"+database+"?user="+user+"&password="+password+""); 
		
		} 
		
		catch (SQLException ex) { 
		
			if(error_reporting == true){
		    
			    System.out.println("Konnte keine Datenbankverbindung herstellen!");
			    System.out.println(ex.getMessage()); 
				System.out.println(ex.getSQLState());
				System.out.println(ex.getErrorCode());
			
			}
		
		} 
	
	}

Die Basis für eine SQL-Verbindung geschaffen, bin mir nun aber nicht wirklich im Klaren darüber, wie ich ein Query

a) ausführen lassen kann
b) Ergebnisse zurückgeben (z.B.: SELECT * FROM foo WHERE a = 'b', 5 rows in einem Vector)

und hoffe dass ihr mir entweder hier einen Tipp oder aber einen guten Link zu einer Dokumentation (das Zeugs von mysql.com kenne ich, danke ;-)) geben könnt! Danke im Vorraus!
 

DP

Top Contributor
hinter dem link steht das gleiche wie in seinem code, aber nicht die antwort auf seine frage :roll: ;)

hier:

Code:
    try
    {
      Statement stmt = null;
      ResultSet rs = null;
      stmt = conn.createStatement();

      String sql = "select * from tabelle";
      rs = stmt.executeQuery(sql);

      while(rs.next())
      {
            rs.getString("spalte_1");
      }

    }
    catch(Exception e)
    {
      logger.error(e);
    }
   }

grüße
 
Alles bis auf die while-Schleife habe ich mir schon von mysql.com zusammenklauen können, danke dir!

while(rs.next()) geht also ein Objekt durch und liefert mir jedes Mal die nächste Zeile.
rs.getString(""); gibt mir - hier einen String - einen Spaltenwert meiner Wahl zurück.

Soweit korrekt?

Aus PHP bin ich es gewöhnt, mir multidimensionale assoziative Arrays aufzubauen, die ich dann durchgehen kann um z.B. eine Ausgabe zu generieren oder damit anderen Dinge anzustellen. Wollte ich das machen, müsste ich doch als return-Wert nur rs übergeben, oder? An anderer Stelle kann ich dann die Schleifen etc. weiterverarbeiten. Mal testen... :)
 

rastaman

Mitglied
Hallo Philipp

Habe genau das gleiche Problem... ;) Ich bin daran, eine Videothek auf die beine zu stellen... ;)

Na ja ich habe mir überlegt, dass ich beim "programmstart" die gesamte Datenbank in Vektoren fülle.
Die frage ist nun, ob ich die einzelnen (nehme mal das Beispiel) Kunden als objekt oder als array in den Vector speichern soll.

dazu würde ich dann mit drei klassen arbeiten...
klasse gui (mainklasse... von hier aus wird alles verwaltet)
klasse sql (so schreiben, dass man einfach ein queri als string eingeben kann, und ein resultset zurückbekommt)
klasse kunde( hier verarbeite ich den resultset zu einem vector, und kann dann auch mit dem Vectorindex dann den nächsten und vorherigen kunden bekommen...)

na ja wir können ja mal codeschnipsel oder so austauschen...

bin aber noch nicht allzuweit...

gruss
rm
 
Ich darf die SQL-Klasse für eine Kundendatenbank schreiben ;-)
Das was du brauchst habe ich aber schon fast fertig, ich will nur bequemerweise eine Inster- und Update-Funktion schreiben, die mir Queries gleich zusammenbaut (Idiotensicher).

Hier mal mein bisheriger Code, bedien dich ruhig. Kompilieren kann man ihn, benutzt hab ich ihn noch nicht... ;-)
Code:
import java.sql.*;
import java.util.*; 

/************************************************************** 
* SQL-Klasse                                                  * 
* ----------------------------------------------------------- * 
* Klasse zur Interaktion mit einem entfernten oder lokalen    * 
* MySQL-Server. 											  * 
* ----------------------------------------------------------- * 
* Autor: Philipp Clemens Gérard                               *
* Datum: 29.04.2004 - 20:25h								  *
**************************************************************/ 

public class Sql { 

	private String 		TABLE 			= new String("users");
	 
	private boolean 	error 			= true; 
	private boolean 	error_reporting = false; 
	
	private Connection 	conn;
	

	/**
     * Konstruktur
     * Lädt MySQL-Treiber und stellt Verbindung her
     * @param String host
     * @param String user
     * @param String password
     * @param String database
     */
	public void Sql(String host, String user, String password, String database){ 
	
		try { 
		
			Class.forName("com.mysql.jdbc.Driver").newInstance(); 
		
		} 
		
		catch (Exception ex) { 

			if(error_reporting == true){
			
				System.out.println("Konnte Treibermodul nicht laden!");
				System.out.println(ex.getMessage()); 
				
			}
		
		} 
		
		try { 
		
			Connection conn = DriverManager.getConnection("jdbc:mysql://"+host+"/"+database+"?user="+user+"&password="+password+"");
		
		} 
		
		catch (SQLException ex) { 
		
			if(error_reporting == true){
		    
			    System.out.println("Konnte keine Datenbankverbindung herstellen!");
			    System.out.println(ex.getMessage()); 
				System.out.println(ex.getSQLState());
				System.out.println(ex.getErrorCode());
			
			}
		
		} 
	
	} 
	
	private void query(String query){
		
		Statement stmt = null; 
		ResultSet rs   = null; 
		
		try {
			
		    stmt 	= conn.createStatement(); 
		    rs 		= stmt.executeQuery(query);		    
		
		} 
		
		catch (Exception ex){
			
			if(error_reporting == true){
				
				System.out.println("Datenbankanfrage ist fehlgeschlagen!");
			    System.out.println(ex.getMessage()); 
				
			}
					
		}
			 
	}
	
	public Object getData(String query){
		
		Statement stmt = null; 
		ResultSet rs   = null; 
		
		try {
			
		    stmt 	= conn.createStatement(); 
		    rs 		= stmt.executeQuery(query);
		    rs 		= stmt.getResultSet();
		    
		    return rs;
		    
		
		} 
		
		catch (Exception ex){
			
			if(error_reporting == true){
				
				System.out.println("Datenbankanfrage ist fehlgeschlagen!");
			    System.out.println(ex.getMessage()); 
				
			}
			
			return new Object();
					
		}	
		
	}
	
	public void update(Vector data){ 
	
		// Vector durchgehen, Query generieren.
	
	} 
	
	public void insert(Vector data){ 
	
		// Vector durchgehen, Query generieren.
	
	} 
	
	public void delete(int id){ 
	
		this.query("DELETE FROM "+TABLE+" WHERE id = "+id);
	
	} 
	
	public void setTable(String newtable){
		
		TABLE = newtable;
		
	}
	
	public void setErrorReporting(boolean newLevel){ 
	
		this.error_reporting = newLevel; 
	
	}
	
}

/* z.B:
 *
 * Connection conn = new Sql("foo","foo","foo","foo");
 *
 * if(conn.getData("SELECT * FROM waste_of_time")){
 *
 * 	while(rs.next()){ 
 *		    
 * 		rs.getString("spalte_x"); 
 *   		
 *  }
 *
 * }
 *
 **/
 

Nino

Mitglied
Hi, ich versuche mich grad auch an Java+Mysql und bin für diesen schönen Code sehr dankbar. Scheinbar reichen meine Java-Kenntnisse nichtmal aus um mit soviel Hilfe was Zustande zu bringen.

Hier mein Code-raub plus meine eigene Kreation:
Code:
import java.sql.*; 
import java.util.*; 

/************************************************************** 
* SQL-Klasse                                                  * 
* ----------------------------------------------------------- * 
* Klasse zur Interaktion mit einem entfernten oder lokalen    * 
* MySQL-Server.                                    * 
* ----------------------------------------------------------- * 
* Autor: Philipp Clemens Gérard                               * 
* Datum: 29.04.2004 - 20:25h                          * 
**************************************************************/ 

public class Sql { 

   private boolean    error_reporting = true;
    
   private Connection    conn; 
    


   public void Sql(String host, String user, String password, String database){ 
    
      try { 
       
         Class.forName("com.mysql.jdbc.Driver").newInstance(); 
       
      } 
       
      catch (Exception ex) { 

         if(error_reporting == true){ 
          
            System.out.println("Konnte Treibermodul nicht laden!"); 
            System.out.println(ex.getMessage()); 
             
         } 
       
      } 
       
      try { 
       
         Connection conn = DriverManager.getConnection("jdbc:mysql://"+host+"/"+database+"?user="+user+"&password="+password+""); 
       
      } 
       
      catch (SQLException ex) { 
       
         if(error_reporting == true){ 
          
             System.out.println("Konnte keine Datenbankverbindung herstellen!"); 
             System.out.println(ex.getMessage()); 
            System.out.println(ex.getSQLState()); 
            System.out.println(ex.getErrorCode()); 
          
         } 
       
      } 
    
   } 
    


   public static void main( String args[] ){


	Connection conn = new Sql("MeinHOST","MeinUSER","NATÜRLICHGEHEIM","test");
 	
	System.out.println("Es geht!");
     

  }

    
}

Leider kann ich den Code nicht kompilieren. Dann kommt der Fehler:
"Cannot resolve Symbol" und er zeigt auf diese Zeile:
Code:
Connection conn = new Sql("MeinHOST","MeinUSER","NATÜRLICHGEHEIM","test");

Könnt ihr mir nen kleinen Tipp geben, was ich da noch verändern muss?
(Die Variablen für den Server hab ich natürlich ein bißchen verfälscht ;))

Danke, nino
 

nollario

Bekanntes Mitglied
Nino hat gesagt.:
Hi, ich versuche mich grad auch an Java+Mysql und bin für diesen schönen Code sehr dankbar. Scheinbar reichen meine Java-Kenntnisse nichtmal aus um mit soviel Hilfe was Zustande zu bringen.

Hier mein Code-raub plus meine eigene Kreation:
Code:
import java.sql.*; 
import java.util.*; 

/************************************************************** 
* SQL-Klasse                                                  * 
* ----------------------------------------------------------- * 
* Klasse zur Interaktion mit einem entfernten oder lokalen    * 
* MySQL-Server.                                    * 
* ----------------------------------------------------------- * 
* Autor: Philipp Clemens Gérard                               * 
* Datum: 29.04.2004 - 20:25h                          * 
**************************************************************/ 

public class Sql { 

   private boolean    error_reporting = true;
    
   private Connection    conn; 
    


   public void Sql(String host, String user, String password, String database){ 
    
      try { 
       
         Class.forName("com.mysql.jdbc.Driver").newInstance(); 
       
      } 
       
      catch (Exception ex) { 

         if(error_reporting == true){ 
          
            System.out.println("Konnte Treibermodul nicht laden!"); 
            System.out.println(ex.getMessage()); 
             
         } 
       
      } 
       
      try { 
       
         Connection conn = DriverManager.getConnection("jdbc:mysql://"+host+"/"+database+"?user="+user+"&password="+password+""); 
       
      } 
       
      catch (SQLException ex) { 
       
         if(error_reporting == true){ 
          
             System.out.println("Konnte keine Datenbankverbindung herstellen!"); 
             System.out.println(ex.getMessage()); 
            System.out.println(ex.getSQLState()); 
            System.out.println(ex.getErrorCode()); 
          
         } 
       
      } 
    
   } 
    


   public static void main( String args[] ){


	Connection conn = new Sql("MeinHOST","MeinUSER","NATÜRLICHGEHEIM","test");
 	
	System.out.println("Es geht!");
     

  }

    
}

Leider kann ich den Code nicht kompilieren. Dann kommt der Fehler:
"Cannot resolve Symbol" und er zeigt auf diese Zeile:
Code:
Connection conn = new Sql("MeinHOST","MeinUSER","NATÜRLICHGEHEIM","test");

Könnt ihr mir nen kleinen Tipp geben, was ich da noch verändern muss?
(Die Variablen für den Server hab ich natürlich ein bißchen verfälscht ;))

Danke, nino

Schalom!


Also:
Die Zeile, die den Fehler beim Komiplieren liefert ist auch nicht so toll...

Mit Connection conn deklarierst Du Dir eine Connection Variable - willst
diesem Connection Objekt dann aber mit dem Konstruktor der Klasse
SQL ein Objekt der Klasse SQL zuweisen... das passt nicht, da SQL
keine Subklasse von Connection ist.

Im Übrigen muss die Signatur des Konstruktors geändert werden. Du
hast dort:

public void Sql(String host, String user, String password, String database){

stehen. Es sind aber keine Rückgabewerte in Konstruktoren erlaubt (also
muss void da weg)...

Ich würde Dir vorschlagen, Du schaust Dir mal den ganzen JDBC (und vielleicht
auch den grundlegenden Java Kram) mal in einem guten Buch an.

Das Handbuch der Javaprogrammierung von Guido Krüger gibt es z.B.
als kostenlosen Download: www.javabuch.de

Saludos

Christian
 

rastaman

Mitglied
hallo zusammen... ;)

also meine Sql klasse sieth unterdessen so aus:

Code:
package videothek2;

import java.sql.*;
import java.util.*;

public class Sql {
    
    Connection conn;
    Statement stmt;
    ResultSet rSet;
    int update;

    
  public boolean connect()
  {
    try {
      Class.forName( "com.mysql.jdbc.Driver" );
    }
    catch ( ClassNotFoundException e ) {
      System.out.println( "Fehler bei ODBC-JDBC-Bridge" + e );
      return false;
    }
    try
    {
      String url = "jdbc:mysql://localhost/videothek";
      conn = DriverManager.getConnection( url, "root", "224181" );
      //conn.close();
    }
    catch ( SQLException e )
    {
      System.out.println( "Fehler bei Tabellenabfrage" + e );
      return false;
    }
    return true;
  }
   
  public ResultSet abfrage(String query){
    try
    {
      stmt = conn.createStatement();
      String sqlQuery = query;
      rSet = stmt.executeQuery( sqlQuery );
      stmt.close();
     }
    catch ( SQLException e )
    {
      System.out.println( "Fehler bei Tabellenabfrage" + e );

    }
     return rSet;  
  }
  
  
  public int update(String query){
    try
    {
      stmt = conn.createStatement();
      String sqlUpdate = query;
      update = stmt.executeUpdate( sqlUpdate );
      stmt.close();
     }
    catch ( SQLException e )
    {
      System.out.println( "Fehler bei Tabellenabfrage" + e );
    }
     return update;  
  }
  
  public boolean trennen(){
    try
    {
      conn.close();
    }
    catch ( SQLException e )
    {
      System.out.println( "Fehler bei Tabellenabfrage" + e );
      return false;
    }
    return true;   
  }
}

Diesen Coede kann man compilieren und es funktioniert auch alles, bis auf das "public ResultSet abfrage(...) "
irgendwie weiss ich nicht, wie ich dieses rSet in einer anderen Klasse ansprechen kann...

weiss jemand rat?
 
M

mageto

Gast
Hi @ all,

mein Problem hat auch mit mySql und Java zu tun wollte aber keinen komplett neuen Thread eröffnen...
Es geht um folgendes..Ich will eine alte Anwendungvon mir bei der eine Access Datenbank als Datenbank fungierte
umstellen auf mySql. Nun habe ich Probleme im Java Code den Driver mittels Class.forName(....); anzugeben.
Immer wenn ich den mysql.Driver angebe (com.mysql.jdbc.Driver) kommt eine Class not found Exception.
Wenn ich aber den sun.jdbc.JDbcOdbcDriver verwende und als DB meine neue mySql DB angebe funktioniert alles
tadellos....

Was mache ich falsch??
In der Verwaltung habe ich meine DB hinzugefügt und als Treiber My SQl Odbc 3.51 Driver...
any idee ??
GRüße und Danke
ivan
 

rastaman

Mitglied
@Philipp

wo bleibt dein code? ;)

@mageto

öm verstehe deine frage irgendwie nicht... aber hast du den MySQL treiber geladen?

gruss
 

nollario

Bekanntes Mitglied
der treiber muss deinem programm zur verfügung stehen (als jar beispielsweise)... und das geschieht in dem der treiber im classpath vorhanden ist -> ClassNotFound: er konnte die Klasse für den Treiber nicht finden.
 
Hier ist mein Code, aber darunter auch überflüssiges Zeugs:

Code:
import java.sql.*; 
import java.util.*; 

/************************************************************** 
* SQL-Klasse                                                  * 
* ----------------------------------------------------------- * 
* Klasse zur Interaktion mit einem entfernten oder lokalen    * 
* MySQL-Server. 											  * 
* ----------------------------------------------------------- * 
* Autor: Philipp Clemens Gérard                               *
* Datum: 29.04.2004 - 20:25h								  *
**************************************************************/ 

public class Sql { 

	private String 		TABLE 			= new String("Kunden");
	 
	private boolean 	error 			= true; 
	private boolean 	error_reporting = true; 
	
	private Connection 	conn			= null;
		
	// Primärfunktionen
	
	public Sql(String host, String user, String password, String database, String tabelle){ 
	
		try { 
		
			Class.forName("com.mysql.jdbc.Driver").newInstance();
				
			System.out.println("Datenbankverbindung hergestellt!"); 
		
		} 
		
		catch (Exception ex) { 

			if(error_reporting == true){
			
				System.out.println("Konnte Treibermodul nicht laden!");
				System.out.println(ex.getMessage()); 
				
			}
		
		} 
		
		try { 
		
			conn = DriverManager.getConnection("jdbc:mysql://"+host+"/"+database+"?user="+user+"&password="+password+"");
		
			System.out.println("'Connection' wurde hergestellt!");
		
		} 
		
		catch (SQLException ex) { 
		
			if(error_reporting == true){
		    
			    System.out.println("Konnte keine Datenbankverbindung herstellen!");
			    System.out.println(ex.getMessage()); 
				System.out.println(ex.getSQLState());
				System.out.println(ex.getErrorCode());
			
			}
		
		} 

		
		this._setTable(tabelle);
	
	} 
	
	public Connection getConnection(){
		
		return this.conn;
		
	}
	
	public boolean query(String query){
		
		Statement stmt = null; 
		
		try {
			
		    stmt = this.conn.createStatement(); 	    
		
		} 
		
		catch (Exception ex){
			
			if(error_reporting == true){
				
				System.out.println("Datenbankanfrage (Schritt #1) ist fehlgeschlagen!");
			    System.out.println(ex.getMessage()); 
				
			}
			
			return false;
					
		}
		
		try {
			
			stmt.execute(query);	
		    
		    return true;
			
		}
		
		catch (Exception ex){
			
			if(error_reporting == true){
				
				System.out.println("Datenbankanfrage (Schritt #2 [FINAL]) ist fehlgeschlagen!");
			    System.out.println(ex.getMessage()); 
				
			}
			
			return false;
					
		}
			 
	}
	
	public ResultSet getData(String query){
		
		Statement stmt = null; 
		ResultSet rs   = null; 
		
		try {
			
		    stmt 	= conn.createStatement(); 
		    rs 		= stmt.executeQuery(query);
		    rs 		= stmt.getResultSet();
		    
		    return rs;
		    
		
		} 
		
		catch (Exception ex){
			
			if(error_reporting == true){
				
				System.out.println("Datenbankanfrage ist fehlgeschlagen!");
			    System.out.println(ex.getMessage()); 
				
			}
			
			return null;
					
		}	
		
	}
	
	// Get-Funktionen
	
	public ResultSet getKunden(){
		
		return this.getData("SELECT id,Name,Vorname,Strasse,Ort FROM "+TABLE+"");
		
	}
	
	public ResultSet getKunde(int id){
		
		return this.getData("SELECT * FROM "+TABLE+" WHERE id = '"+id+"'");
	
	}
	
	// Auto-Update
	
	public void update(Vector data){ 
	
		String abfrage = new String("UPDATE "+TABLE+" SET ");
		
		for(int x = 0; x < data.lenght(); x++){
			
			
			
		}
		
		this.query(abfrage);
		
		// Vector durchgehen, Query generieren.
	
	} 
	
	// Auto-Insert
	
	public void insert(Vector data){ 
	
		// Vector durchgehen, Query generieren.
	
	} 
	
	// Delete-Funktionen
	
	public void deleteKunde(int id){ 
	
		this.query("DELETE FROM "+TABLE+" WHERE id = "+id);
	
	} 
	
	// Update-Funktionen
	
	public void updateName(int id, String Name){
		
		this.query("UPDATE "+TABLE+" SET Name = '"+Name+"' WHERE id = '"+id+"'");
		
	}
	
	public void updateVorname(int id, String Vorname){
		
		this.query("UPDATE "+TABLE+" SET Vorname = '"+Vorname+"' WHERE id = '"+id+"'");
		
	}	
	
	public void updateFirma(int id, String Firma){
		
		this.query("UPDATE "+TABLE+" SET Firma = '"+Firma+"' WHERE id = '"+id+"'");
		
	}
	
	public void updateTelefon_p(int id, String Telefon){
		
		this.query("UPDATE "+TABLE+" SET Telefon_g = '"+Telefon+"' WHERE id = '"+id+"'");
		
	}
	
	public void updateStrasse(int id, String Strasse){
		
		this.query("UPDATE "+TABLE+" SET Strasse = '"+Strasse+"' WHERE id = '"+id+"'");
		
	}	
	
	public void updateOrt(int id, String Ort){
		
		this.query("UPDATE "+TABLE+" SET Ort = '"+Ort+"' WHERE id = '"+id+"'");
		
	}
	
	public void updatePLZ(int id, String PLZ){
		
		this.query("UPDATE "+TABLE+" SET PLZ = '"+PLZ+"' WHERE id = '"+id+"'");
		
	}
	
	public void updateBundesland(int id, String Bundesland){
		
		this.query("UPDATE "+TABLE+" SET Bundesland = '"+Bundesland+"' WHERE id = '"+id+"'");
		
	}
	
	public void updateLand(int id, String Land){
		
		this.query("UPDATE "+TABLE+" SET Land = '"+Land+"' WHERE id = '"+id+"'");
		
	}
	
	public void updateTelefon_g(int id, String Telefon){
		
		this.query("UPDATE "+TABLE+" SET Telefon_g = '"+Telefon+"' WHERE id = '"+id+"'");
		
	}
	
	public void updateFax(int id, String Fax){
		
		this.query("UPDATE "+TABLE+" SET Fax = '"+Fax+"' WHERE id = '"+id+"'");
		
	}
	
	public void updateEmail(int id, String Email){
		
		this.query("UPDATE "+TABLE+" SET Email = '"+Email+"' WHERE id = '"+id+"'");
		
	}
	
	public void updateNotizen(int id, String Notizen){
		
		this.query("UPDATE "+TABLE+" SET Notizen = '"+Notizen+"' WHERE id = '"+id+"'");
		
	}	
	
	// Sekundärfunktionen
	
	public void _setTable(String newtable){
		
		TABLE = newtable;
		
	}
	
	public void _setErrorReporting(boolean newLevel){ 
	
		this.error_reporting = newLevel; 
	
	}
	
}

+ Testdatei:

Code:
import java.sql.*; 
import java.util.*;
import java.lang.*;

public class Test {
	
	public static void main(String[] args){
		
		Sql foo = new Sql("192.168.0.1","gk12","foo","12_Kunden","Geht nicht");
		
		foo._setTable("Kunden");
		
		if(foo.query("INSERT INTO Kunden (`Name`) VALUES ('Peter')")){
			
			System.out.println("Peter wurde eingetragen!");
			
		}
 		
 		ResultSet rs = foo.getKunden();
 		
 		System.out.println("KUNDENLISTE:");
 		System.out.println("------------------------------");
 		
 		try { 

 		
 			while(rs.next()){ 
 			
 				System.out.println("--- Kunde #"+rs.getInt("id")+": ------------------");
 				System.out.println("Name: "+rs.getString("Name")+""); 
 				System.out.println("Vorname: "+rs.getString("Vorname")+"");
 				System.out.println("Strasse: "+rs.getString("Strasse")+"");
 				System.out.println("Ort: "+rs.getString("Ort")+"");
 				
	 		}
	 		
	 	}
	 	
	 	catch (Exception ex){
	 		
	 		//
	 		
	 	}
	 	
	 	
	 	//System.out.println("Hier ist ein DAU-Test:");
	 	//String Name = foo.getName(12);
	 	//System.out.println(""+Name);
		
	}
	
}

Funktioniert defintiv. Nicht vergessen, die Java-Treiber von mysql.com zu installieren. Siehe Readme.
 
M

mike

Gast
Hi.. also das beispiel is super klasse... nur ich check das mit dem Treiber einrichten einfach nicht. Ich hab jetzt da ne zip datei runtergeladen mit folgendem jar file: mysql-connector-java-3.1.1-alpha-bin

des hab ich nun in mein sdk ordner unter jre\lib\ext kopiert.

der rest liegt alles unter sdk ordner.. is ja n haufen zeug dabei @ zip datei

aber irgendwie geht das immer noch nicht oder was muss ich noch machen?

Class.forName("com.mysql.jdbc.Driver").newInstance(); <--- was solln hier rein?

hoff ihr könnt mir helfen !

danke
 
M

mike

Gast
nun hab ich unter umgebungsvariablen das hier eingetragen:

ClassPath:
C:\j2sdk1.4.2_02\lib;

nun geht nicht mal mehr der Zugriff von der einen auf die andere Datei @ siehe beispiel oben.. des ging ohne ClassPath schon
 
M

mike

Gast
auf dem link war ich doch scho.. aber das hilft mir auch nicht weiter.. ich versteh nicht wie das mir der jar datei ablaufen soll?

der lib pfad ist schon richtig gesetzt... muss ja nicht über die dos shell.. gibt ja auch unter arbeitsplatz eigenschaften umgebungsvariablen was zum pfade setzen :eek:)

alle sagen classpath auf jar datei beziehn.. muss doch reichen wenn ichs auf die lib setze..
 
M

mike

Gast
com.mysql.jdbc.Driver <-- ich check das endlich

ich hab nen ordner im SDK verzeichnis der heisst:

mysql-connector-java-3.1.1-alpha

^---- ist der heruntergelande entzippte ordner .. und da drunter gibts com -> mysql -> jdbc -> driver !

aber wo muss nun das rein? des überverzeichnis mysql-connector-java-3.1.1-alpha weg???, sodass alles direkt im SDK verzeichnis liegt?
 

nollario

Bekanntes Mitglied
wenn du es nicht direkt in deine java distribution packst, musst du das jar (das verzeichnis reicht nicht) explizit angeben in deinem classpath....

Code:
CLASSPATH=c:\bla;.....;c:\verz\mysql.jar
 
M

mike

Gast
jippi nr1 geht :eek:) danke

nun hab ich noch probleme auf die daten zuzugreifen.. muss ich noch unter verwaltung an odbc treiber was einstellen oder sowas?

Code:
String host = new String("localhost");
String database = new String("guestbook");
String user = new String("");
String password = new String("");

Connection conn = DriverManager.getConnection("jdbc:mysql://"+host+"/"+database+"?user="+user+"&password="+password+"");

des klappt nicht so ganz.. findet guestbook.tbl_guestbook nicht.. also ich vermute.. ich muss noch was einstellen :((
 
M

mike

Gast
*schäm.. :oops:

man sollte tbl_gues"t"book auch so schreiben.. tschuldigung.. wer die rechte hat kann die posts löschen.. also den und den vorgänger..

sorry.. hätt ich mich nu angemeldet könnt ichs selber deleten.. argh.. :bloed:
 
N

nochmal mike

Gast
gibt dann doch noch ein Problem.. nun hab ich die jar datei im classpath..
jetzt funktioniert das obere beispiele aber nicht mehr..

ich habe eine datei mit klasse Sql die den Connect macht und den ResultSet liefert..

und dann eine extra datei mit der main methode die eine instanz von Sql macht.. das geht jetzt aber nicht mehr
der meckert mir ständig Sql neu = new Sql("parameter"); an

cannot resolve symbol :(
 

nollario

Bekanntes Mitglied
der findet die klasse wohl nicht... wenn du den classpath anpasst, musst du das aktuelle working directory mit einschliessen:

Code:
set %CLASSPATH%=%CLASSPATH%;c:\lib\mysql.jar;.

wobei der . für das aktuelle verzeichnis gilt (kannst du natuürlich auch über den arbeitsplatz -> system -> umgebungsvatiabeln machen ;-) )
 
M

mike

Gast
DAANKE !! :toll:

nu is das auch alles ein wenig verständlicher.. Danke Danke Danke :!:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Juelin Java und MySQL MariaDB - WHERE-Klausel Datenbankprogrammierung 17
TheSkyRider MySQL Datenbankzuordnung in Verbindung mit Java Datenbankprogrammierung 7
C Java MySQL check if value exists in database Datenbankprogrammierung 2
S Datenbank MySQL und Java Datenbankprogrammierung 8
P Adressadministration mit Java und mySQL Datenbankprogrammierung 14
platofan23 MySQL Java Programm findet Treiber für mySQL auf Debian-Server nicht? Datenbankprogrammierung 11
X MySQL Java hat keinen Zugriff auf MySQL Datenbankprogrammierung 9
K Java Object mit Hibernate in MySQL abspeichern Datenbankprogrammierung 1
G MySQL Java Problem: Nullpointer Exception obwohl Daten vorhanden sind? Datenbankprogrammierung 2
F MySQL Wie kann ich in Java Datensätze aus einer MySQL Datenbank gezielt in einzelne Arrays schreiben? Datenbankprogrammierung 9
J mySQL- Java Application - Zugriff über Internet Datenbankprogrammierung 3
H SHOW Tables in Java/MySQL Datenbankprogrammierung 8
Z MySQL Shopsystem mit mysql und Java Datenbankprogrammierung 8
H Datenbank-Anbindung Java/MySQL Datenbankprogrammierung 2
K Adressverwaltung mit MySql und Java? Datenbankprogrammierung 11
M Java Mysql verbinden Datenbankprogrammierung 3
L MySQL App/Java Zugriff auf Mysql-DB funktioniert nicht Datenbankprogrammierung 1
P MySQL Java Programm als Dienst MySQL Dump zurück spielen Datenbankprogrammierung 4
P Mittels Java einen neuen MySQL User erstellen Datenbankprogrammierung 4
E MySQL Java an Mysql Webdatenbank anbinden Datenbankprogrammierung 11
L Mit Java Desktop Anwendung auf Mysql Server auf Webspace verbinden Datenbankprogrammierung 11
S Java Connection to MySQL Datenbank FunPic Datenbankprogrammierung 4
F Wie kann man das mysql Command in java laufen lassen? Datenbankprogrammierung 14
G Suchfunktion mit Java in Mysql Datenbank Datenbankprogrammierung 7
M Auf MySQL Datenbank mit Java zugreifen Datenbankprogrammierung 4
M MySQL Datenbank mit Java routen Datenbankprogrammierung 2
A mysql Treiber nich gefunden Java Editor Datenbankprogrammierung 6
M Ausgabe in Tabelle der MySQL-Datenbank mit Java Datenbankprogrammierung 4
H MySQL-DB automatisches Backup per Java Datenbankprogrammierung 2
S java.lang.ClassNotFoundException: com.mysql.jdbc.Driver Datenbankprogrammierung 10
Y Java und MySql... "No suitable Driver..." Datenbankprogrammierung 16
S Java objekt in MYSQL auslesen Datenbankprogrammierung 32
H Fat Jar Export: Could not find class-path entry for 'C:Java/jdk/mysql-connector-java- Datenbankprogrammierung 3
N Java mit MySQl verbinden Datenbankprogrammierung 11
F eigenartiges Java/mysql problem Datenbankprogrammierung 9
S Java, JDBC und MySQL - Verbindungserror Datenbankprogrammierung 8
B Spaltennamen von MySQL Datenbank nach Java auslesen Datenbankprogrammierung 10
P Java und MySQL Datenbankprogrammierung 7
J MYSQL-Zugriff mittels einer Java-Bean Datenbankprogrammierung 42
T Java app. MySQL, Google Web API, domains Datenbankprogrammierung 2
A Java-Applet -> MySQL Datenbank Datenbankprogrammierung 7
E Datenbankverbindung Java MySQL Exception Datenbankprogrammierung 10
L Bilder in MySQL-Datenbank via Java verwalten Datenbankprogrammierung 5
zilti java.lang.ClassNotFoundException: com.mysql.jdbc.Driver Datenbankprogrammierung 3
H Empfehlenswert: Java + MySQL? Datenbankprogrammierung 18
G wohin mit dem treiber ? mysql-connector-java-5.0.5-bin.jar Datenbankprogrammierung 12
D java.lang.ClassNotFoundException: com.mysql.jdbc.Driver Datenbankprogrammierung 5
J Java und Mysql Datenbankprogrammierung 5
F JAVA & MySQL : INSERT INTO DB ! Datenbankprogrammierung 2
U Java und Mysql Problem über 24:00:00 Stunden Datenbankprogrammierung 4
M MySQL-Datenbank über Java ansprechen Datenbankprogrammierung 5
M Datenbankanbindung: Java - MySQL Datenbankprogrammierung 2
A MySQL+Webserver --(Java-Applet)----> Client Datenbankprogrammierung 11
B Source not found // Java MySQL (eclipse) Datenbankprogrammierung 4
B Importieren in MySQL mit Java-Programm Datenbankprogrammierung 2
B Exportieren aus MySQL mit Java-Programm Datenbankprogrammierung 11
M Mit Java Data Objects Daten in einer MySQL-Datenbank manipul Datenbankprogrammierung 9
G MySQl und Java Datenbankprogrammierung 6
B Java und MySQL mal wieder Datenbankprogrammierung 3
S MySQL-Abfrage unter java funktioniert nicht! Datenbankprogrammierung 4
R MySQL denies access to data source - java.sql.SQLException Datenbankprogrammierung 14
M MySQL Tabellen in java auslesen? Datenbankprogrammierung 5
G Java & Mysql Ein- und Ausgabefehler? (Anfängerfrage) Datenbankprogrammierung 2
S MySQL und Java: Falsche Daten werden ausgelesen Datenbankprogrammierung 9
S Passwort MySQL oder JAVA? Datenbankprogrammierung 4
A java & mysql abfrage mit variablen auswerten, wie? Datenbankprogrammierung 8
P java connectet mysql-db nicht. Datenbankprogrammierung 5
8 Java-MySQL wie geht das mit dem Treiber? Datenbankprogrammierung 3
G 2 fragen zu java <-> mysql Datenbankprogrammierung 4
M Mit Java Applet via HDBC auf MySQL DB zugreifen? Datenbankprogrammierung 2
T MySQL - Java - Japanisch (Kanji) Datenbankprogrammierung 3
E kann mysql nichts mit java.sql.Time anfangen?? Datenbankprogrammierung 3
F Problem mit MySQL-Datenbank und Java-Applet Datenbankprogrammierung 2
N MySQL DB in Java einbinden ? Datenbankprogrammierung 2
G JDBC - MYSQL - Schnittstelle in Java programmieren Datenbankprogrammierung 8
G grundwissen Java-Mysql Datenbankprogrammierung 5
S JAVA & MySQL Datenbankprogrammierung 2
D Mysql zugriff aus java nicht moeglich Datenbankprogrammierung 2
P Reicht finally nicht um DB connections zu schließen in (altem) Java? Datenbankprogrammierung 4
A Java DB Server lässt sich nicht starten Datenbankprogrammierung 3
U SQL Server mit Java verbinden Datenbankprogrammierung 5
D SQLite Datenbank in Android Studio (Java) durchsuchen Datenbankprogrammierung 3
TH260199 Java-Programm. Probleme bei der Umsetzung von einer Kontaktverwaltung. Datenbankprogrammierung 7
S Das printen der Ausgabe des Oracle-SQL-Statements in der Java-Eclipse-Konsole funktioniert nicht Datenbankprogrammierung 6
Zrebna Wie mittels Hibernate eine Join-Tabelle als eigene Java-Klasse erstellen? Datenbankprogrammierung 5
Zrebna Noobfrage: Konvertierung von SQL-Datentyp 'timestamp with time zone' in Java-Datentyp Datenbankprogrammierung 3
Zrebna Lediglich interne DB-Verbindungen (Connections) auslesen - mittels Java Datenbankprogrammierung 4
berserkerdq2 Was genau muss ich bei date eingeben, wenn ich in Java eine Spalte definiere, die date ist? Datenbankprogrammierung 1
berserkerdq2 Was kann passieren, wenn ich in java einstelle, dass der Fremdschüssel ein Attribut ist, welches selber kein Primärschlüssel ist? Datenbankprogrammierung 4
berserkerdq2 Foreign key einstellen java Datenbankprogrammierung 4
nikgo Java SQL Ausgabe in Liste o.ä. abspeichern um mit dem Ergbnis "zu arbeiten"? Datenbankprogrammierung 5
S Datenbankprogrammierung in Java unter NetBeans 12 funktioniert nicht! Datenbankprogrammierung 1
Beginner22 Zugriff auf Datenbank aus Java über mariadb Datenbankprogrammierung 3
S ODBC Treiber in Java Editor einbinden Datenbankprogrammierung 3
H Oracle Resize eines Images in Java und Rückgabe des Image als BLOB an die Oracle Datebank Datenbankprogrammierung 14
H Java Class zum komprimieren von Jpeg-Images zum Einbinden in Oracle DB - Bild als blob (in und out) Datenbankprogrammierung 23
V SQLite java.sql.SQLException: no such column: Datenbankprogrammierung 18
B Wie kopieren ich eine Spalte von einer Tabelle in eine andere Tabelle SQLite durch java code? Datenbankprogrammierung 26
D Daten aus der Firebase-Echtzeitdatenbank abfragen und in Variablen speichern (JAVA) Datenbankprogrammierung 0
Slaylen Java List Suchen mit eigenem Generischen Datentyp Datenbankprogrammierung 10

Ähnliche Java Themen

Neue Themen


Oben