Hallo,
ich habe ein Programm geschrieben, welches Daten aus MySQL-Datenbank ausliest und zwar lokal. D.h. die MySQL-Datenbank liegt auf dem selben Rechner wo auch das geschriebene Programm und funktioniert auch.
Ich moechte aber die Daten aus dieser MySQL-Datenbank mit selbem Programm von einem anderen Rechner im Netzwerk(ueber Router) zugreifen, oder auch ueber das Internet aus einem beliebigem Rechner, geht das?:bahnhof:
Welche Aenderungen muss ich im Programm vornehmen? Ich habe versucht statt "localhost" im Pfad die IP-Adresse des Zielrechners einzugeben und erzeugte eine JAR-Datei des Programms, welcher alle Libraries und externe JAR's hinzugefuegt wurden, aber es laeuft nicht. Kann da jemand mir weiterhelfen?
Hier der Quellcode:
ich habe ein Programm geschrieben, welches Daten aus MySQL-Datenbank ausliest und zwar lokal. D.h. die MySQL-Datenbank liegt auf dem selben Rechner wo auch das geschriebene Programm und funktioniert auch.
Ich moechte aber die Daten aus dieser MySQL-Datenbank mit selbem Programm von einem anderen Rechner im Netzwerk(ueber Router) zugreifen, oder auch ueber das Internet aus einem beliebigem Rechner, geht das?:bahnhof:
Welche Aenderungen muss ich im Programm vornehmen? Ich habe versucht statt "localhost" im Pfad die IP-Adresse des Zielrechners einzugeben und erzeugte eine JAR-Datei des Programms, welcher alle Libraries und externe JAR's hinzugefuegt wurden, aber es laeuft nicht. Kann da jemand mir weiterhelfen?
Hier der Quellcode:
Java:
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.border.TitledBorder;
public class GUI extends JFrame {
private static final long serialVersionUID = 6468516705291496250L;
private JTextArea feldEinlesen;
private JButton einlesen, beenden;
//Innere Klasse implementiert ActionListener
class MeinListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("lesen"))
dateiLesen();
if (e.getActionCommand().equals("ende"))
System.exit(0);
}
}
//Kostruktor
public GUI(String titel) {
super(titel);
JPanel panelEinlesen, panelButtons;
panelEinlesen = panelEinlesen();
panelButtons = panelButtons();
setLayout(new GridLayout(2,1));
add(panelEinlesen);
add(panelButtons);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setMinimumSize(new Dimension(700,500));
setResizable(false);
setVisible(true);
}
//Methode fuer Panel des Einleseeditors
private JPanel panelEinlesen(){
JPanel tempPanel = new JPanel();
feldEinlesen = new JTextArea();
tempPanel.setLayout(new GridLayout(0,1,10,10));
tempPanel.add(new JScrollPane(feldEinlesen));
tempPanel.setBorder(new TitledBorder("MySQL-Datenbank einlesen:"));
return tempPanel;
}//Ende panelEinlesen()
//Methode fuer Panel der Buttons
private JPanel panelButtons(){
JPanel tempPanel = new JPanel();
einlesen = new JButton("Einlesen");
einlesen.setActionCommand("lesen");
beenden = new JButton("Beenden");
beenden.setActionCommand("ende");
MeinListener listener = new MeinListener();
einlesen.addActionListener(listener);
beenden.addActionListener(listener);
tempPanel.setLayout(new FlowLayout(FlowLayout.CENTER,100,50));
tempPanel.add(einlesen);
tempPanel.add(beenden);
tempPanel.setBorder(new TitledBorder("Buttons:"));
return tempPanel;
}//Ende panelButtons()
//die Methode zum Lesen der Werte in der Datei
private void dateiLesen() {
System.out.println("Methode 'dateiLesen()' aktiviert");
ConnectExampleMySQL ce=new ConnectExampleMySQL();
ce.mysqlConnect( "", "", "localhost");
ce.query();
ce.schliesenVerbindung();
}//Ende dateiLesen()
public static void main(String[] args) {
new GUI("GUI_MYSQL");
}
//Innere Klasse
public class ConnectExampleMySQL extends Object{
public String text;
public Connection theConnection=null;
private Statement stmt=null;
private ResultSet result=null;
public String textName;
public void schliesenVerbindung(){
try{
theConnection.close();
System.out.println("\nVerbindung wieder geschlossen.");
}catch(SQLException sqle){
System.out.println("Fehler beim Schliessen.");
System.exit(-1);
}
}
private void query() {
try{
stmt=theConnection.createStatement();
result=stmt.executeQuery("SELECT vorname, nachname FROM angestellte ORDER BY nachname ASC");
String nachname ;
String vorname ;
while(result.next()){
nachname=result.getString("nachname");
feldEinlesen.setText("");
vorname=result.getString("vorname");
textName=nachname;
System.out.println("Nachname: "+nachname+"\n"+" Vorname: "+vorname+"\n");
feldEinlesen.append(result.getString("nachname")+" "+result.getString("vorname")+"\n");
}
}catch(SQLException sqle){
System.out.println("\nSQLException sqle");
}
}//Ende Methode
private void mysqlConnect(String userID, String password, String machineName) {
if(theConnection==null){
try {
Class.forName("org.gjt.mm.mysql.Driver");
String connectionURL="jdbc:mysql://"+machineName+":3306/dbdemo";
theConnection=DriverManager.getConnection(connectionURL, userID, password);
}catch (ClassNotFoundException cnfe) { System.out.println("ClassNotFoundException."+cnfe.getMessage());
}catch (SQLException sqle) {
System.out.println("SQLException."+sqle.getMessage());
}
}else{
System.out.println("Die DB-Verbindung exestiert bereits.");
}
}//Ende Methode
}//Ende Innere Klasse
}