# Java - m y s q l



## till123 (7. Okt 2008)

Hallo,

ich habe gar keine Ahnung wie ich vorgehen muss... habe das noch nicht gemacht/versucht.

Was ich habe:
1.) eclipse
2.) mysql-Datenbank  (auf einem webserver)
3.) auf der DB ist ein User angelegt.

Wie muss ich nun vorgehen, damit ich java mit dieser DB verbinden kann?

Bitte ganz von vorne und ganz langsam 


Danke


----------



## AlArenal (7. Okt 2008)

Brauchst du eine Suchfunktion um die Suchfunktion zu finden?


----------



## till123 (7. Okt 2008)

So, die Verbindung steht.

Wie kann ich mir jetzt alle Tabellen in einer DB auflisten lassen?


----------



## Gelöschtes Mitglied 5909 (7. Okt 2008)

bei mysql mit dem statement show tables

oder allgemein Connection#getMetaData


----------



## till123 (7. Okt 2008)

danke


----------



## lain (15. Okt 2008)

Könntest du vielleicht sagen auf welchen Thread du gestoßen bist damit andere auch weiterkommen =) ?!


----------



## till123 (15. Okt 2008)

Leider habe ich den Link nicht mehr 

Hier aber mal mein erster Quellcode:

```
import java.io.*;
import java.sql.*;

public class Run
{
 public static void main( String[] argv )
 {
	String sDbDrv=null;
	String sDbUrl=null;
	String sUsr="";
	String sPwd="";
	
	try{
			BufferedReader in = new BufferedReader(new InputStreamReader( System.in ) );
			System.out.print("Name des Datenbanktreibers (com.mysql.jdbc.Driver oder org.postgresql.Driver): ");
			sDbDrv = in.readLine();
			System.out.println("Url des Datenbanktreibers (jdbc:mysql://localhost:8889/ oder jdbc:postgresql://localhost:8889/): ");
			sDbUrl = in.readLine();
			System.out.print("Datenbank:" );
			sDbUrl = sDbUrl.concat(in.readLine());
			System.out.print("Benutzername: ");
			sUsr = in.readLine();
			System.out.print("Passwort: ");
			sPwd = in.readLine();
	    } catch( IOException ex ) {System.out.println( ex );}
	    
	if( null != sDbDrv && 0 < sDbDrv.length() && null != sDbUrl && 0 < sDbUrl.length() ){
		Connection cn = null;
		Statement  st = null;
	    ResultSet  rs = null;
	    boolean bExitProgramm = true; 
	    String sReadInLine = "";
	    while(bExitProgramm)
	    {try {
	    	 	// Select fitting database driver and connect:
	    	 	Class.forName( sDbDrv );
	    	 	cn = DriverManager.getConnection( sDbUrl, sUsr, sPwd );
	    	 	st = cn.createStatement();
	    	 	System.out.println( "Bitte geben sie das Query ein: ");
	    	 	try {
	    	 			BufferedReader in = new BufferedReader(new InputStreamReader( System.in ) );
	    	 			sReadInLine=in.readLine();
	    	 			if(sReadInLine.compareTo("exit")==0)
	    	 			{
	    	 				bExitProgramm=false;
	    	 				break;
	    	 			}
	    	 			else
	    	 				{
	    	 					rs = st.executeQuery( sReadInLine );
	    	 					printResult(rs);
	    	 				}
	    	 			
		      		} catch( IOException ex ) { bExitProgramm=false; System.out.println( ex );}
		      
		      	

	     	} catch( Exception ex ) {System.out.println( ex );}
	     	finally {
	     				bExitProgramm=false;
	     				try { if( null != rs ) rs.close(); } catch( Exception ex ) {}
	     				try { if( null != st ) st.close(); } catch( Exception ex ) {}
	     				try { if( null != cn ) cn.close(); } catch( Exception ex ) {}
	     			}
		}
	    }
	}

	  // Extend String to length of 14 characters
	  private static final String extendStringTo14( String s )
	  {
	    if( null == s ) s = "";
	    final String sFillStrWithWantLen = "              ";
	    final int iWantLen = sFillStrWithWantLen.length();
	    final int iActLen  = s.length();
	    if( iActLen < iWantLen )
	      return (s + sFillStrWithWantLen).substring( 0, iWantLen );
	    if( iActLen > 2 * iWantLen )
	      return s.substring( 0, 2 * iWantLen );
	    return s;
	  }
	  
	  private static final void printResult(ResultSet rs) throws SQLException
	  {
    		// Get meta data:
    		ResultSetMetaData rsmd = rs.getMetaData();
    		int i, n = rsmd.getColumnCount();
    		// Print table content:
    		for( i=0; i<n; i++ )
    			System.out.print( "+---------------" );
    		System.out.println( "+" );
    		for( i=1; i<=n; i++ )    // Attention: first column with 1 instead of 0
    			System.out.print( "| " + extendStringTo14( rsmd.getColumnName( i ) ) );
    		System.out.println( "|" );
    		for( i=0; i<n; i++ )
    			System.out.print( "+---------------" );
    		System.out.println( "+" );
    		while( rs.next() ) {
    			for( i=1; i<=n; i++ )  // Attention: first column with 1 instead of 0
    				System.out.print( "| " + extendStringTo14( rs.getString( i ) ) );
    			System.out.println( "|" );
    		}
    		for( i=0; i<n; i++ )
    			System.out.print( "+---------------" );
    		System.out.println( "+" );
	  }
	}
```

Zuvor muss man sich aber noch die passenden Treiber von der mysql- (oder postgre-) Homepage downloaden und einbinden.

Also das Programm ist nicht wirklich der Brüller, aber es wird eine Verbindung aufgebaut 
Hoffe ich konnte ein bisschen helfen.


----------

