# MySQL-Umgebung



## siroFranz (2. Feb 2007)

Hallo,

suche unter Linux/windows aber am liebsten linux eine Art virtuelle MySQl-Umgebung wo man auch Tabellen erstellen kann und das ganze auch mit Java verknüpfen kann.
Also möchte das ganze Ding jetzt nicht auf nem Server einrichten und was auch richtig läuft, sondern woman Befehle usw. üben kann.
Vllt. kennt ja irgendjm. sowas ? unter Linux gibts ein prog, aber weiß den Namen leider nicht mehr =?!

Gruß


----------



## AlArenal (2. Feb 2007)

Was soll denn bitteschön eine "virtuelle MySQL-Umgebung" sein?

Wenn du den Umgang mit und die Anbindung von MySQL testen willst, brauchst du eben MySQL. Autofahren lernt man auch indem man Auto fährt.....


----------



## siroFranz (2. Feb 2007)

ja aber welches program ?


----------



## WieselAc (2. Feb 2007)

versteh dich nicht ganz ?? suchst du jetzt eine mysql Datenbank oder was??


----------



## siroFranz (2. Feb 2007)

jo


----------



## siroFranz (2. Feb 2007)

jo ein programm, aber ich meine da gibts es auch ne seite phpmyadmin oder so?


----------



## moormaster (2. Feb 2007)

phpmyadmin hat schonmal gar nix mit mysqp zu tun. Soweit ich weiss, wurde das völlig unabhängig von mysql entwickelt, um die Datenbanken zu administrieren. Für phpmyadmin benötigst du aber einen PHP fähigen Webserver (sowie einen MySQL Server).

Es gibt allerdings auch für Windows genügend Administrationstools für Datenbanken, so dass man da nicht unbedingt auf phpmyadmin angewiesen ist, wenn man eh nur lokal testet.

Was spricht denn nun eigentlich dagegen, sich den MySQL Server herunterzuladen und einfach zu installieren? Dann kannst du dich einfach zu deinem eigenen Rechner connecten und da mit Datenbanken und Tabellen herumspielen, wie du möchtest.

Ich wüsste nicht, was eine "virtuelle" mysql Umgebung bringen sollte... das wäre ja dann eine MySQL Datenbank, welche auf die entsprechenden Befehle reagiert und die Datenbank entsprechend manipuliert... also MySQL selbst. Wieso muss man ein Auto erst 1 zu 1 nachbauen, um zu testen, wie es ist, damit zu fahren??


----------



## siroFranz (2. Feb 2007)

was wäre den ein gutes Programm dafür ?


----------



## moormaster (2. Feb 2007)

z.B.
http://www.computerbase.de/downloads/software/systemueberwachung/mysql_gui_tools/

ansonsten hilft google... hab von denen auch noch keins lange genug probiert, um da Bewertungen drüber abgeben zu können.


----------



## DP (3. Feb 2007)

http://www.java-forum.org/de/viewtopic.php?t=43802


----------



## siroFranz (3. Feb 2007)

hab mir mal den MySQL-Server 5.0 draufgeklatscht aber kann man nicht mal datenbanken exportieren, es sei den reinladen =?!
Kennt jm. ein besseres, irgendjm. muss doch schon paar erfahrungen damit gemacht haben ?


----------



## moormaster (3. Feb 2007)

siroFranz hat gesagt.:
			
		

> hab mir mal den MySQL-Server 5.0 draufgeklatscht aber kann man nicht mal datenbanken exportieren, es sei den reinladen =?!
> Kennt jm. ein besseres, irgendjm. muss doch schon paar erfahrungen damit gemacht haben ?



Das mit dem exportieren und wieder reinladen ist so ne Sache. Woher willst du denn eine Datenbank importieren? Die verschiedenen Datenbanksysteme haben relativ unterschiedliche Features. Zum Beispiel sind in Access Datenbanken Tabellen mit < oder > im Namen erlaubt und in MySQL nicht.

Solche Dinge erschweren es, eine Datenbank von a nach b automatisiert zu migrieren. Es gibt Tools, die können eine Datenbank in eine Folge von SQL Befehlen exportieren, wobei da die SQL Unterstützung der verschiedenen Datenbanksysteme auch wieder sehr variiert.


----------



## siroFranz (3. Feb 2007)

wie krieg ich den wenn ich einen database-connector nehme , dass ich mit dem auf die datenbank zugreifen kann.
Die datenbank ist auch auf dem gleichen pc .


----------



## moormaster (3. Feb 2007)

siroFranz hat gesagt.:
			
		

> wie krieg ich den wenn ich einen database-connector nehme , dass ich mit dem auf die datenbank zugreifen kann.
> Die datenbank ist auch auf dem gleichen pc .



Die Connectoren sind bloß Schnittstellen, damit man von einem Programm aus auf eine MySQL Datenbank zugreifen kann.

http://www.galileocomputing.de/open...20_001.htm#mjefd48f234e14f3405450e33c88f467af


----------



## siroFranz (3. Feb 2007)

ja aber wie kann ich jetzt von java aus auf meine sql tabellen zugreifen ?


----------



## DP (3. Feb 2007)

siroFranz hat gesagt.:
			
		

> ja aber wie kann ich jetzt von java aus auf meine sql tabellen zugreifen ?



sagmal, bist du lernresistent?! FORENSUCHE oder hier


----------



## siroFranz (4. Feb 2007)

so wenn ich das hier habe , wie kann ich damit auf meine datenbank zugreifen (ist auch auf dem gleichen pc).


```
import java.sql.*;

public class databaseConnector
{
    Connection verbindung;
    Statement abfrage;
    ResultSet datenMenge;
    boolean debugMode= false;
    
    /**
    * Der Konstruktor versucht den Treiber zu laden und die Verbindung zur Datenbank herzustellen. 
    * Der java-mysql Treiber muss vorher von der Webseite [url]www.mysql.org[/url] herunter geladen werden, sofern er nicht 
    * schon im Betriebssystem vorhanden ist. Sollte keine Verbindung hergestellt werden können, so wird eine Exception geworfen. 
    * Im debugMode werden die  Fehlermeldungen auf der Konsole ausgegeben.
    * 
    * * */
    public databaseConnector(String database, String user, String password, boolean debugMode) throws Exception
    {
        this.debugMode = debugMode;
        try 
        {
            Class.forName("com.mysql.jdbc.Driver");
            try
            {
                verbindung = java.sql. DriverManager.getConnection("jdbc:mysql:"+database, user, password);
            }
            catch(Exception e)
            {
                    if(debugMode)
                    {
                        System.err.println(e.getMessage());
                    }
                    throw new Exception("Verbindung zum Server gescheitert.");
 
            }
            
        }
        catch(ClassNotFoundException e)
        {
                    if(debugMode)
                    {
                        System.err.println(e.getMessage());
                    }
            throw new Exception("Treiber nicht gefunden");
        }
    }
    
    /**
     * Führt eine beliebige SQL Anweisung durch. Gibt zurück, ob es sich um einen SELECT-Befehl
     * oder eine andere SQL-Anweisung handelte.
     */
    public boolean  doSQL(String sqlAnweisung) throws Exception 
    {
        try 
        {
            abfrage = verbindung.createStatement();
            datenMenge=abfrage.getResultSet();
            return abfrage.execute(sqlAnweisung);
        }
        catch( Exception e)
        {
            if(debugMode)
            {
                        System.err.println(e.getMessage());
            }
            throw e;
         }           
    }
     /**
     * Fürt eine SELECT-Anweisung durch und gibt zurück, ob 
     * der Befehl erfolgreich ausgeführt wurde.
     */
    public boolean executeQuery(String sqlAnweisung)
    {
        try 
        {
            abfrage = verbindung.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
            datenMenge = abfrage.executeQuery(sqlAnweisung);
            return true;
        }
        catch( Exception e)
        {
            if(debugMode)
            {
                        System.err.println(e.getMessage());
            }
            return false;
        } 
    }
    
    /**
     * Fürt die Methoden zum Ändern der Datenbankinhalte aus (INSERT, UPDATE, DELETE)
     * und gibt die Anzahl der modifizierten Datensätze zurück.
     */
    public int executeUpdate(String sqlAnweisung)
    {
        int anzahl =0;
        try 
        {
            abfrage = verbindung.createStatement();
            anzahl = abfrage.executeUpdate(sqlAnweisung);
            if(debugMode)
            {
                System.err.println("Die Abfrage betraf "+anzahl+" Reihen");
  
            }
        }
        catch( Exception e)
        {
            anzahl = 0;
            if(debugMode)
            {
                        System.err.println(e.getMessage());
            }
        } 
        return anzahl;
    }
    
    /**
     * Durchschreitet die Datenmenge vorwärts (steht am Anfang vor dem ersten Eintrag).
     */
    public boolean next()
    {
       try 
       {
            return datenMenge.next();
       }
       catch( Exception e)
       {
            if(debugMode)
            {
                        System.err.println(e.getMessage());
            }
            return false;
       }
    
    }
     /**
     * Durchschreitet die Datenmenge rückwärts (steht am Anfang vor dem ersten Eintrag).
     */
    public boolean previous()
    {
       try 
       {
            return datenMenge.previous();
       }
       catch( Exception e)
       {
            if(debugMode)
            {
                        System.err.println(e.getMessage());
            }
            return false;
       }
    
    }
    /**
    * Liefert den Spaltenwert der angegebenen Spalte als Text oder im Fehlerfall einen leeren Text.
    */
    public String getText(String feldName)
    {
        try 
        {
            return datenMenge.getString(feldName);
        }
        catch( Exception e)
        {
            if(debugMode)
            {
                        System.err.println(e.getMessage());
            }
            return "";
       }
    }
    
    /**
     * Liefert den Spaltenwert des angegebenen Spalteindex als Text oder im Fehlerfall einen leeren Text (INDEX beginnt mit 1).
     */
    public String getText( int spaltenIndex)
    {
        try 
        {
            return datenMenge.getString(spaltenIndex);
        }
        catch( Exception e)
        {
            if(debugMode)
            {
                        System.err.println(e.getMessage());
            }
            return "";
       }
    }
    
    /**
    * Liefert den Spaltenwert der angegebenen Spalte als Integer oder im Fehlerfall 0.
    */
    public int getInt(String feldName)
    {
        try 
        {
            return datenMenge.getInt(feldName);
        }
        catch( Exception e)
        {
            if(debugMode)
            {
                        System.err.println(e.getMessage());
            }
            return 0;
       }
    }
    /**
     * Liefert den Spaltenwert des angegebenen Spalteindex als Integer oder im Fehlerfall 0 (INDEX beginnt mit 1).
     */
    public int getInt( int spaltenIndex)
    {
        try 
        {
            return datenMenge.getInt(spaltenIndex);
        }
        catch( Exception e)
        {
            if(debugMode)
            {
                        System.err.println(e.getMessage());
            }
            return 0;
       }
    }
    
   /**
    * Liefert den Spaltenwert der angegebenen Spalte als Double oder im Fehlerfall 0.0.
    */
    public double getDouble(String feldName)
    {
        try 
        {
            return datenMenge.getDouble(feldName);
        }
        catch( Exception e)
        {
            if(debugMode)
            {
                        System.err.println(e.getMessage());
            }
            return 0;
       }
    }
    
    /**
     * Liefert den Spaltenwert des angegebenen Spalteindex als Double oder im Fehlerfall 0.0 (INDEX beginnt mit 1).
     */
    public double getDouble( int spaltenIndex)
    {
        try 
        {
            return datenMenge.getDouble(spaltenIndex);
        }
        catch( Exception e)
        {
            if(debugMode)
            {
                        System.err.println(e.getMessage());
            }
            return 0.0;
       }
    }
    
    /**
    * Liefert den Spaltenwert der angegebenen Spalte als Boolean oder im Fehlerfall false.
    */
    public boolean getBoolean(String feldName)
    {
        try 
        {
            return datenMenge.getBoolean(feldName);
        }
        catch( Exception e)
        {
            if(debugMode)
            {
                        System.err.println(e.getMessage());
            }
            return false;
       }
    }
    
    /**
     * Liefert den Spaltenwert des angegebenen Spalteindex als Boolean oder im Fehlerfall false (INDEX beginnt mit 1).
     */
    public boolean getBoolean( int spaltenIndex)
    {
        try 
        {
            return datenMenge.getBoolean(spaltenIndex);
        }
        catch( Exception e)
        {
            if(debugMode)
            {
                        System.err.println(e.getMessage());
            }
            return false;
       }
    }
    
    /**
     * Liefert den Spaltenwert des angegebenen Spalteindex als Datum oder im Fehlerfall null (INDEX beginnt mit 1).
     */
    public Date getDate( int spaltenIndex)
    {
        try 
        {
            return datenMenge.getDate(spaltenIndex);
        }
        catch( Exception e)
        {
            if(debugMode)
            {
                        System.err.println(e.getMessage());
            }
            return null;
       }
    }
    
    /**
    * Liefert den Spaltenwert der angegebenen Spalte als Datum oder im Fehlerfall null.
    */
    public Date getDate(String feldName)
    {
        try 
        {
            return datenMenge.getDate(feldName);
        }
        catch( Exception e)
        {
            if(debugMode)
            {
                        System.err.println(e.getMessage());
            }
            return null;
       }
    }
    
    /**
     * Destruktor, wird von Java aufgerufen.
     */
    protected void finalize()
    {
       try
       {
            verbindung.close();
       }
       catch( Exception e)
       {
            if(debugMode)
            {
                        System.err.println(e.getMessage());
            }
       }
    }
   

    
}
```


----------



## DP (4. Feb 2007)

*FEIERABEND*

1. wurdest du auf die forensuche hingewiesen
2. hast du fertigen, *komplett* dokumentierten code
3. willst du nicht lesen
4. kauen wir nicht alles vor
5. mfg


----------

