Java Application & Database mit MySQL auf Domain

harton

Grünschnabel
Hallo an alle :-)

Ich bin relativ neu in Java und für mein Studium bin ich gerade dabei ein paar Projekte auszuarbeiten. Ganz besonder interessant ist natürlich auch immer die Einbindung von Datenbanken.

Nun habe ich betreff Java und Datenbanken eine Frage.

Ich würde gern eine JAVA Applikation für den Desktop Rechner erstellen die sich via Internetverbindung mit der Datenbank auf meinem Server/ meiner Homepage verbindet.

DerServer verwendet Linux und auf diesem ist MYSQL, PHPMyAdmin etc. installiert. Die Datenbank funktioniert auch zumindest wenn ich direkt über PHPMYAdmin darauf zugreife. die Große Preisfrage ist nun aber wie greife ich von meinem Desktop rechner mithilfe dieser Java Applikation auf die Datanbank zu. Wie muss ich das Java Programm erstellen, bzw. geht solch eine verbindung überhaupt? Wenn ja habt ihr Hinweise wo ich so etwas nachlesen kann. In den üblichen Hilfen finde ich immer nur beispiele für lösungen mit lokalen Datenbanken.

Danke schon mal im Vorraus. :-)
 
hi
ich würd vorm posten mal den :google: bzw im forum such button benutzen ;)

aber ich hab da was für dich:
Code:
package pre.crt.swing;

import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Calendar;

import pre.crt.cal.WorkCal;
import pre.crt.company.Company;
import pre.crt.person.Person;
import pre.crt.time.PersonTimeRecords;
import pre.crt.time.TimeCalculation;

public class DBaccess {
	
	private Connection con;
	private Statement stmt;
	private ResultSet rSet;
	private PersonTimeRecords   userTable;
	private Person pers;

	public DBaccess(PersonTimeRecords ptr)throws CrtException
	{
		userTable = ptr;
		
		try
		{
			Class.forName("com.mysql.jdbc.Driver").newInstance();
			openConnection();
			
		}
		catch (ClassNotFoundException e) {
			System.out.println("Fehler bei Verbindung - "+ e);
			return;
		} catch (InstantiationException e) {
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			e.printStackTrace();
		}
	}
	private void openConnection() {
		try {
			con = DriverManager.getConnection("jdbc:mysql://localhost/test?user=root&password=michi");
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	private void closeConnection () {
		try {
			con.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	private ResultSet getResultFromQuery( String query ) {
		ResultSet rs = null;
		
		try {
			if(con.isClosed() || con ==null)
				openConnection();
			
			stmt = con.createStatement();
		
			System.out.println(query);
			rs = stmt.executeQuery(query);
			
			//stmt.close();
			//closeConnection();
			
		} catch (SQLException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		return rs;
	}
	private int getLastRowFromResult( ResultSet rs, int additionalRowCounts ) throws SQLException {
		rs.last();
		int rw = rs.getRow() + additionalRowCounts;
		rs.beforeFirst();
		return rw;
	}
	private String[][] getNewErgebnis( ResultSet rs, int additionalRows, int col ) throws SQLException {
		return getNewErgebnis(getLastRowFromResult(rs, additionalRows), col);

	}
	private String[][] getNewErgebnis( int row, int col ) throws SQLException {		
		return new String[row][col];
	}
	
	public String[][] datenJtableAngestellter(String benutzer)throws CrtException
	{
		String[][] ergebnis;
		
		try
		{
			
			String sqlQuery = "select tt_p_persNr, tt_date , tt_timestart, tt_timeend, tt_tk_key" +
					"  from timetable  where tt_p_persNr = '"+benutzer+"' ORDER BY tt_date ASC;";
					//DATE_FORMAT(tt_date, '%c' ) = "+(Calendar.getInstance().get(Calendar.MONTH)+1)+" and 
			
			rSet = getResultFromQuery(sqlQuery);
			
			ergebnis = getNewErgebnis( rSet, 0, 6 );
			
			int i = 0;
			while(rSet.next())
			{
				ergebnis[i][0]=(rSet.getString("tt_p_persNr"));
				ergebnis[i][1]=(rSet.getString("tt_date"));
				ergebnis[i][2]=(""+TimeCalculation.getIsWorkingTime(rSet.getLong("tt_timestart")));
				ergebnis[i][3]=(""+TimeCalculation.getIsWorkingTime(rSet.getLong("tt_timeend")));
				
				String hours = (""+(TimeCalculation.getIsWorkingTime_AsFloat(rSet.getLong("tt_timeend"))
						-TimeCalculation.getIsWorkingTime_AsFloat(rSet.getLong("tt_timestart"))));
				
				ergebnis[i][4]=hours.substring(0, hours.indexOf(".")+2);
				ergebnis[i][5]=(rSet.getString("tt_tk_key"));
				
				try {
				} catch (NullPointerException e2) {
					System.out.println("Fehler DBaccess datenJtable " + e2.getMessage());
				}
				
				i++;
			}
		}
		catch (SQLException e) {
			System.out.println("Fehler bei Tabellenabfrage");
			System.out.println( e );
			throw new CrtException("ERROR: Fehler "+e);
		}
		return ergebnis;
	}
 
Hallo axid,

Erst mal ein Biiiiiiig thanks für deine Hilfe. :-)
Ich werde mal versuchen die ganze Sache mit Hilfe deines Codes zu verstehen.

Hatte schon gegoogelt darüber auch dieses Forum gefunden ;-)
Noch ne Frage zu den DB drivern ... muss der auf meinem Lokalen PC installiert sein?

Gruß
tony
 
@ axid

zeile:
con = DriverManager.getConnection("jdbc:mysql://localhost/test?user=root&password=michi");
}

--> dies ist ja localhost ?

Muss das nicht die URL des servers im internet sein zb.mydomain.com



con = DriverManager.getConnection("jdbc:mysql://mydomain.com/test?user=root&password=michi");
}


Danke schon mal im vorraus :-)
 
@ axid

zeile:
con = DriverManager.getConnection("jdbc:mysql://localhost/test?user=root&password=michi");
}

--> dies ist ja localhost ?

Muss das nicht die URL des servers im internet sein zb.mydomain.com



con = DriverManager.getConnection("jdbc:mysql://mydomain.com/test?user=root&password=michi");
}


Danke schon mal im vorraus :-)

jo richtig
 
Zurück