MySQL Table in Jtable integrieren

mostwanted

Mitglied
Hello World

Ich verzweifle fast... Nachdem ich endlich den Datenbank-Connect erstellt und positiv getestet habe stehe ich schon wieder an. Mein Ziel: die Daten der SQL Tabelle im Jtable anzeigen. Mehr nicht.

Geht das überhaupt so wie ich das realisieren will?

In der SQL Tabelle gibt es idProduktausprägung, Bezeichnung, Preis und einen Fremdschlüssel. Anzeigen will ich die ersten drei.

Java:
/*
 * Bearbeitung.java

package Teileverwaltung;

import java.sql.*;

/**
 *
 * @author  __USER__
 */
public class Bearbeitung extends javax.swing.JFrame {

	private Connection mydbconn = null;   
	
	/** Creates new form Bearbeitung */
	public Bearbeitung() {
		
		initComponents();
		
		//DB Connection erstellen
		try {
			 String userName = "root";
			 String password = "root";
			 String url = "jdbc:mysql://localhost/mydb";
			 Class.forName("com.mysql.jdbc.Driver").newInstance();
			 this.mydbconn = DriverManager.getConnection(url, userName, password);
			 System.out.println("Database connection established");
			 } catch (Exception e) {
			   System.err.println("Cannot connect to database server ");
			   e.printStackTrace();
			 }
	}

	/** This method is called from within the constructor to
	 * initialize the form.
	 * WARNING: Do NOT modify this code. The content of this method is
	 * always regenerated by the Form Editor.
	 */
	//GEN-BEGIN:initComponents
	// <editor-fold defaultstate="collapsed" desc="Generated Code">
	private void initComponents() {

		jLabel1 = new javax.swing.JLabel();
		bt_abbrechen = new javax.swing.JButton();
		bt_ausführen = new javax.swing.JButton();
		jScrollPane1 = new javax.swing.JScrollPane();
		jTable1 = new javax.swing.JTable();

		setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
		setTitle("Teileverwaltung");

		jLabel1.setText("Hier k\u00f6nnen Sie die Teile bearbeiten oder l\u00f6schen.");

		bt_abbrechen.setText("Abbrechen");
		bt_abbrechen.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent evt) {
				bt_abbrechenActionPerformed(evt);
			}
		});

		bt_ausführen.setText("Ausf\u00fchren");

		jTable1.setModel(new javax.swing.table.DefaultTableModel(
				new Object[][] { { null, null, null, null, null },
						{ null, null, null, null, null },
						{ null, null, null, null, null },
						{ null, null, null, null, null } }, new String[] {
						"id", "Bezeichnung", "Preis", "bearbeiten",
						"löschen" }) 
		
		String selectString = "select * from produktausprägung where Bezeichnung = '"
			 + this.txtBezeichnung.getText() + "'";
			 try {
			  Statement befehl = this.mydbConnection.createStatement();
			  ResultSet resultat = befehl.executeQuery(selectString);
			  int i = 0;
			  while (resultat.next()) {
			   i++;
			   if (i == 1) {
			    this.txtidProduktausprägung.setText(resultat.getString("id_idProduktausprägung"));
			    this.txtBezeichnung.setText(resultat.getString("Bezeichnung"));
			    this.txtPreis.setText(resultat.getString("Preis"));
			   }
			  }					
		
		{
			Class[] types = new Class[] { java.lang.Object.class,
					java.lang.Object.class, java.lang.Object.class,
					java.lang.Boolean.class, java.lang.Boolean.class };

			public Class getColumnClass(int columnIndex) {
				return types[columnIndex];
			}
		});
		jScrollPane1.setViewportView(jTable1);

		javax.swing.GroupLayout layout = new javax.swing.GroupLayout(
				getContentPane());
		getContentPane().setLayout(layout);
		layout.setHorizontalGroup(layout
				.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
				.addGroup(
						layout.createSequentialGroup()
								.addGroup(
										layout.createParallelGroup(
												javax.swing.GroupLayout.Alignment.TRAILING)
												.addGroup(
														layout.createSequentialGroup()
																.addGroup(
																		layout.createParallelGroup(
																				javax.swing.GroupLayout.Alignment.LEADING)
																				.addGroup(
																						layout.createSequentialGroup()
																								.addContainerGap()
																								.addComponent(
																										jLabel1)
																								.addPreferredGap(
																										javax.swing.LayoutStyle.ComponentPlacement.RELATED,
																										40,
																										Short.MAX_VALUE))
																				.addGroup(
																						javax.swing.GroupLayout.Alignment.TRAILING,
																						layout.createSequentialGroup()
																								.addContainerGap()
																								.addComponent(
																										bt_abbrechen)
																								.addGap(50,
																										50,
																										50)))
																.addPreferredGap(
																		javax.swing.LayoutStyle.ComponentPlacement.RELATED)
																.addComponent(
																		bt_ausführen)
																.addGap(12, 12,
																		12))
												.addGroup(
														javax.swing.GroupLayout.Alignment.LEADING,
														layout.createSequentialGroup()
																.addContainerGap()
																.addComponent(
																		jScrollPane1,
																		javax.swing.GroupLayout.PREFERRED_SIZE,
																		452,
																		javax.swing.GroupLayout.PREFERRED_SIZE)))
								.addContainerGap(26, Short.MAX_VALUE)));
		layout.setVerticalGroup(layout
				.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
				.addGroup(
						layout.createSequentialGroup()
								.addGap(36, 36, 36)
								.addComponent(jLabel1)
								.addGap(18, 18, 18)
								.addComponent(jScrollPane1,
										javax.swing.GroupLayout.PREFERRED_SIZE,
										93,
										javax.swing.GroupLayout.PREFERRED_SIZE)
								.addGap(63, 63, 63)
								.addGroup(
										layout.createParallelGroup(
												javax.swing.GroupLayout.Alignment.BASELINE)
												.addComponent(bt_abbrechen)
												.addComponent(bt_ausführen))
								.addGap(26, 26, 26)));

		pack();
	}// </editor-fold>
	//GEN-END:initComponents

	private void bt_abbrechenActionPerformed(java.awt.event.ActionEvent evt) {
		this.dispose();
	}

	/**
	 * @param args the command line arguments
	 */
	public static void main(String args[]) {
		java.awt.EventQueue.invokeLater(new Runnable() {
			public void run() {
				new Bearbeitung().setVisible(true);
			}
		});
	}

	//GEN-BEGIN:variables
	// Variables declaration - do not modify
	private javax.swing.JButton bt_abbrechen;
	private javax.swing.JButton bt_ausführen;
	private javax.swing.JLabel jLabel1;
	private javax.swing.JScrollPane jScrollPane1;
	private javax.swing.JTable jTable1;
	// End of variables declaration//GEN-END:variables

}

Vielen Dank für eure Feedbacks
 

Manuela

Aktives Mitglied
Hallo ich mache sowas immer so:

Java:
  Connection con = DBConnector.getInstance().getConnection();
   Statement stmt = con.createStatement();
 ResultSet r = stmt.stmt.executeQuery("SELECT * FROM ...);

int rows =0;


        while (r.next()) {
                tm.setRowCount(rows + 1);
                tm.setValueAt(r.getString("FLD_NAME"), rows, 0);
                tm.setValueAt(r.getString("FLD_VORNAME"), rows, 1);
                tm.setValueAt(r.getString("FLD_GEBURTSJAHR"), rows, 2);
                tm.setValueAt(r.getString("ID"), rows, 3);

                             rows++;
            }
 

Manuela

Aktives Mitglied
Hallo
also als 1.
Java:
unter deiner class legst du einen Tablemodel an
public class Bearbeitung extends  ...

  public DefaultTableModel tm;

   public Bearbeitung() {
        
        initComponents();

       tm = new DefaultTableModel(new String[]{"Na", "M", "Funktion", "Kostenträger"}, 1) {

            public Class getColumnClass(int columnIndex) {
                  switch (columnIndex) {                
                            case 1: return Integer.class;
                            case 2: return Double.class;
                    default:
                        return String.class;

                }
            }

            ;
        };

    jTable1.setModel(tm);
}

Hier wird die Tabelle geladen
Java:
    public void laden() {
        try {
              tm.setRowCount(0);
            Connection con = DBConnector.getInstance().getConnection();
            Statement stmt = con.createStatement();
            int rows = 0;
            ResultSet r  = stmt.executeQuery("Select * from ...");


            }

            while (r.next()) {
                tm.setRowCount(rows + 1);
                tm.setValueAt(r.getString("FLD_NAME"), rows, 0);
                tm.setValueAt(r.getString("FLD_VORNAME"), rows, 1);
                tm.setValueAt(r.getString("FLD_GEBURTSJAHR"), rows, 2);
                tm.setValueAt(r.getString("ID"), rows, 3);

                //      //  //      System.out.println("Name : " + r.getString("FLD_NAME"));
                rows++;
            }
        } catch (SQLException ex) {
            Logger.getLogger(Patientsuche.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
 

Manuela

Aktives Mitglied
Hallo,
ich erkenne nicht dein problem,

ich hatte Dir doch gezeigt wie du es machen musst.

Zeig mir mal deinen code.

Gruss Manuela
 

mostwanted

Mitglied
Zu beachten gilt noch das ich das GUI mit Matisse Form gemacht habe (boolean für löschen und ändern). Das ganze soll eine Artikelverwaltung geben.

momentan sieht es so aus:

Java:
/*
 * Bearbeitung.java
 
package Teileverwaltung;
 
import java.sql.*;
 
/**
 *
 * @author  __USER__
 */
public class CopyOfBearbeitung extends javax.swing.JFrame {
 
    private Connection mydbconn = null;   
    
    /** Creates new form Bearbeitung */
    public CopyOfBearbeitung() {
        
        initComponents();
       
        //DB Connection erstellen
        try {
             String userName = "root";
             String password = "root";
             String url = "jdbc:mysql://localhost/mydb";
             Class.forName("com.mysql.jdbc.Driver").newInstance();
             this.mydbconn = DriverManager.getConnection(url, userName, password);
             System.out.println("Database connection established");
             } catch (Exception e) {
               System.err.println("Cannot connect to database server ");
               e.printStackTrace();
             }
    }
 
    public DefaultTableModel tm;
    
    public Bearbeitung() {
         
         initComponents();
  
        tm = new DefaultTableModel(new String[]{"ID", "Bezeichnung", "Preis",}, 1) {
  
             public Class getColumnClass(int columnIndex) {
                   switch (columnIndex) {                
                             case 1: return Integer.class;
                             case 2: return Double.class;
                     default:
                         return String.class;
  
                 }
             }
  
             ;
         };
  
     jTable1.setModel(tm);
 }
    
    
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    //GEN-BEGIN:initComponents
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
 
   
    private void initComponents() {
 
        jLabel1 = new javax.swing.JLabel();
        bt_abbrechen = new javax.swing.JButton();
        bt_ausführen = new javax.swing.JButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();
 
        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Teileverwaltung");
 
        jLabel1.setText("Hier k\u00f6nnen Sie die Teile bearbeiten oder l\u00f6schen.");
 
        bt_abbrechen.setText("Abbrechen");
        bt_abbrechen.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                bt_abbrechenActionPerformed(evt);
            }
        });
 
        bt_ausführen.setText("Ausf\u00fchren");
 
        jTable1.setModel(new javax.swing.table.DefaultTableModel(
                new Object[][] { { null, null, null, null, null },
                        { null, null, null, null, null },
                        { null, null, null, null, null },
                        { null, null, null, null, null } }, new String[] {
                        "id", "Bezeichnung", "Preis", "bearbeiten",
                        "löschen" }) 
        
        public void laden() {
            try {
                  tm.setRowCount(0);
                Connection con = DBConnector.getInstance().getConnection();
                Statement stmt = con.createStatement();
                int rows = 0;
                ResultSet r  = stmt.executeQuery("Select * from produkausprägung");
    
     
                }
     
                while (r.next()) {
                    tm.setRowCount(rows + 1);
                    tm.setValueAt(r.getString("idProduktausprägung"), rows, 0);
                    tm.setValueAt(r.getString("Bezeichnung"), rows, 1);
                    tm.setValueAt(r.getString("Preis"), rows, 2);
     
                    //      //  //      System.out.println("Name : " + r.getString("FLD_NAME"));
                    rows++;
            
            } catch (SQLException ex) {
                Logger.getLogger(Patientsuche.class.getName()).log(Level.SEVERE, null, ex);
            }
        }           
        
        {
            Class[] types = new Class[] { java.lang.Object.class,
                    java.lang.Object.class, java.lang.Object.class,
                    java.lang.Boolean.class, java.lang.Boolean.class };
 
            public Class getColumnClass(int columnIndex) {
                return types[columnIndex];
            }
        });
        jScrollPane1.setViewportView(jTable1);
 
        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(
                getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(layout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(
                        layout.createSequentialGroup()
                                .addGroup(
                                        layout.createParallelGroup(
                                                javax.swing.GroupLayout.Alignment.TRAILING)
                                                .addGroup(
                                                        layout.createSequentialGroup()
                                                                .addGroup(
                                                                        layout.createParallelGroup(
                                                                                javax.swing.GroupLayout.Alignment.LEADING)
                                                                                .addGroup(
                                                                                        layout.createSequentialGroup()
                                                                                                .addContainerGap()
                                                                                                .addComponent(
                                                                                                        jLabel1)
                                                                                                .addPreferredGap(
                                                                                                        javax.swing.LayoutStyle.ComponentPlacement.RELATED,
                                                                                                        40,
                                                                                                        Short.MAX_VALUE))
                                                                                .addGroup(
                                                                                        javax.swing.GroupLayout.Alignment.TRAILING,
                                                                                        layout.createSequentialGroup()
                                                                                                .addContainerGap()
                                                                                                .addComponent(
                                                                                                        bt_abbrechen)
                                                                                                .addGap(50,
                                                                                                        50,
                                                                                                        50)))
                                                                .addPreferredGap(
                                                                        javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                                .addComponent(
                                                                        bt_ausführen)
                                                                .addGap(12, 12,
                                                                        12))
                                                .addGroup(
                                                        javax.swing.GroupLayout.Alignment.LEADING,
                                                        layout.createSequentialGroup()
                                                                .addContainerGap()
                                                                .addComponent(
                                                                        jScrollPane1,
                                                                        javax.swing.GroupLayout.PREFERRED_SIZE,
                                                                        452,
                                                                        javax.swing.GroupLayout.PREFERRED_SIZE)))
                                .addContainerGap(26, Short.MAX_VALUE)));
        layout.setVerticalGroup(layout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(
                        layout.createSequentialGroup()
                                .addGap(36, 36, 36)
                                .addComponent(jLabel1)
                                .addGap(18, 18, 18)
                                .addComponent(jScrollPane1,
                                        javax.swing.GroupLayout.PREFERRED_SIZE,
                                        93,
                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(63, 63, 63)
                                .addGroup(
                                        layout.createParallelGroup(
                                                javax.swing.GroupLayout.Alignment.BASELINE)
                                                .addComponent(bt_abbrechen)
                                                .addComponent(bt_ausführen))
                                .addGap(26, 26, 26)));
 
        pack();
    }// </editor-fold>
    //GEN-END:initComponents
 
    private void bt_abbrechenActionPerformed(java.awt.event.ActionEvent evt) {
        this.dispose();
    }
 
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Bearbeitung().setVisible(true);
            }
        });
    }
 
    //GEN-BEGIN:variables
    // Variables declaration - do not modify
    private javax.swing.JButton bt_abbrechen;
    private javax.swing.JButton bt_ausführen;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable jTable1;
    // End of variables declaration//GEN-END:variables
 
}
 

Manuela

Aktives Mitglied
Hallo,
ich habe es mit Netbeans gemacht.
1. habe ich nicht getestet.

Java:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * Test001.java
 *
 * Created on 31.05.2011, 16:59:46
 */



import com.mysql.jdbc.Statement;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.table.DefaultTableModel;


public class Test001 extends javax.swing.JFrame {
   public DefaultTableModel tm;
    /** Creates new form Test001 */
    public Test001() {
        initComponents();
               tm = new DefaultTableModel(new String[]{"Na", "M", "Funktion", "Kostenträger"}, 1) {
 
            public Class getColumnClass(int columnIndex) {
                  switch (columnIndex) {                
                            case 1: return Integer.class;
                            case 2: return Double.class;
                    default:
                        return String.class;
 
                }
            }
 
            ;
        };
 
    jTable1.setModel(tm);
    
     laden();
        
    }

       public void laden() {
        try {
              tm.setRowCount(0);
 DBConnector co1 = DBConnector.getInstance();
           co1.connect();
            Connection con = co1.getConnection();
            Statement stmt = con.createStatement();
            int rows = 0;
            ResultSet r  = stmt.executeQuery("Select * from ...");
 
 
            while (r.next()) {
                tm.setRowCount(rows + 1);
                tm.setValueAt(r.getString("FLD_NAME"), rows, 0);
                tm.setValueAt(r.getString("FLD_VORNAME"), rows, 1);
                tm.setValueAt(r.getString("FLD_GEBURTSJAHR"), rows, 2);
                tm.setValueAt(r.getString("ID"), rows, 3);
 
                //      //  //      System.out.println("Name : " + r.getString("FLD_NAME"));
                rows++;
            }
        } catch (SQLException ex) {
            Logger.getLogger(Test001.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jPanel2 = new javax.swing.JPanel();
        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();
        jTextField1 = new javax.swing.JTextField();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setName("Form"); // NOI18N

        jPanel1.setName("jPanel1"); // NOI18N

        jPanel2.setName("jPanel2"); // NOI18N

        org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(fragekatalog.FragekatalogApp.class).getContext().getResourceMap(Test001.class);
        jButton1.setText(resourceMap.getString("jButton1.text")); // NOI18N
        jButton1.setName("jButton1"); // NOI18N

        jButton2.setText(resourceMap.getString("jButton2.text")); // NOI18N
        jButton2.setName("jButton2"); // NOI18N

        jTextField1.setText(resourceMap.getString("jTextField1.text")); // NOI18N
        jTextField1.setName("jTextField1"); // NOI18N

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addGap(33, 33, 33)
                .addComponent(jButton1)
                .addGap(18, 18, 18)
                .addComponent(jButton2)
                .addGap(41, 41, 41)
                .addComponent(jTextField1, javax.swing.GroupLayout.DEFAULT_SIZE, 399, Short.MAX_VALUE)
                .addContainerGap())
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addGap(26, 26, 26)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButton1)
                    .addComponent(jButton2)
                    .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jScrollPane1.setName("jScrollPane1"); // NOI18N

        jTable1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Title 1", "Title 2", "Title 3", "Title 4"
            }
        ));
        jTable1.setName("jTable1"); // NOI18N
        jScrollPane1.setViewportView(jTable1);

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup()
                        .addGap(20, 20, 20)
                        .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 637, Short.MAX_VALUE))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
                .addContainerGap())
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 462, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(28, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );

        pack();
    }// </editor-fold>

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Test001().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable jTable1;
    private javax.swing.JTextField jTextField1;
    // End of variables declaration

}

und dann koppele deinen Datenbank connector aus.


Java:
public final class Connector {
   
    
    private Connection connection = null;
  
    private  static Connector uniqueInstance = null;
    private static final String treiber = "com.mysql.jdbc.Driver";
    
    public Connector() throws InstantiationException {
        try {
            try {
                Class.forName(treiber).newInstance();
            } catch (IllegalAccessException ex) {
                Logger.getLogger(Connector.class.getName()).log(Level.SEVERE, null, ex);
            }
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(Connector.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
     /**************************************************
                Singleton Muster
   ***************************************************/
   public static Connector getInstance() {
        if (uniqueInstance == null) {
            try {
                uniqueInstance = new Connector();
            } catch (InstantiationException ex) {
                Logger.getLogger(Connector.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        return uniqueInstance;
    }
    
     public Connection getConnection() {

          return connection;
    }


      public void connect() {
        try {
String userName = "root";
             String password = "root";
             String url = "jdbc:mysql://localhost/mydb";

   connection = (Connection) DriverManager.getConnection(url, userName, password);     

            }catch (SQLException e) {
             }

}
 

mostwanted

Mitglied
Erstmal Danke für deine schnellen Antworten. Leider klappt es nicht - wo ist den jetzt konkret der DB connect (Pw abfrage etc.)?
Wie erwähnt ich will "nur" den ganzen Inhalt einer Tabelle (ID, Bezeichnung, Preis) in einer Tabelle, die in einem GUI integriert ist, anzeigen.
 

Manuela

Aktives Mitglied
Hallo,
ich versuche es dir mal zu erklären.

1. Du muß auf die Datenbank einen Select (Resultset absetzen können).
Dafür mußt du einen einen mysql-Connector haben (ich gehe mal davon aus dass du einen hast).
2. mußt du dich mit der Datenbank verbinden (connect) damit du auch an die Daten kommst.

mit dieser Klasse erstellst du eine Verbindung Zur Datenbank.
Java:
public final class Connector {
   
    
    private Connection connection = null;
  
    private  static Connector uniqueInstance = null;
    private static final String treiber = "com.mysql.jdbc.Driver";
    
    public Connector() throws InstantiationException {
        try {
            try {
                Class.forName(treiber).newInstance();
            } catch (IllegalAccessException ex) {
                Logger.getLogger(Connector.class.getName()).log(Level.SEVERE, null, ex);
            }
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(Connector.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
     /**************************************************
                Singleton Muster
   ***************************************************/
   public static Connector getInstance() {
        if (uniqueInstance == null) {
            try {
                uniqueInstance = new Connector();
            } catch (InstantiationException ex) {
                Logger.getLogger(Connector.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        return uniqueInstance;
    }
    
     public Connection getConnection() {
 
          return connection;
    }
 
 
      public void connect() {
        try {
             String userName = "root";
             String password = "root";
             String url = "jdbc:mysql://localhost/mydb";
 
             connection = (Connection) DriverManager.getConnection(url, userName, password);     
 
            }catch (SQLException e) {
             }
 
}

Java:
 DBConnector co1 = Connector.getInstance();
           co1.connect();

3. Wenn du eine Verbindung kannst du den eigendlichen Datenbankinhalt laden
Java:
            Connection con = co1.getConnection(); // hier wird die Instanz der Connector Klasse aufgerufen.
            Statement stmt = con.createStatement();
 
            ResultSet r  = stmt.executeQuery("Select * from ...");

4. Laden der Daten in dein jTable.
Dafür benutzt man ein TableModel

Deine Daten werden dann in das jTable geschrieben.
Java:
        int rows=0;
            while (r.next()) {
                tm.setRowCount(rows + 1);
                tm.setValueAt(r.getString("FLD_NAME"), rows, 0);
                tm.setValueAt(r.getString("FLD_VORNAME"), rows, 1);
                tm.setValueAt(r.getString("FLD_GEBURTSJAHR"), rows, 2);
                tm.setValueAt(r.getString("ID"), rows, 3);
                 rows++;
            }

ich hoffe ich habe mich Verständlich ausgedrückt.

Gruß Manuela
 

mostwanted

Mitglied
Will einfach nicht. Connect bzw. Verbindung hatte ich... Gerade komplett neues Projekt und Class erstellt - fehltanzeige. Auch wenn ich "nur" dein Code nehme und zusammenbaue
 

Manuela

Aktives Mitglied
Hallo neuer Versuch,

Mache ein neues Project
lege eine neue Klasse an mit Namen "Connector"
Java:
package javaapplication13;
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */



import com.mysql.jdbc.Connection;

import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;


public final class Connector {


    private Connection connection = null;
  
    private  static Connector uniqueInstance = null;
    private static final String treiber = "com.mysql.jdbc.Driver";

    public Connector() {
        try {
            try {
                Class.forName("com.mysql.jdbc.Driver").newInstance();
            } catch (InstantiationException ex) {
                Logger.getLogger(Connector.class.getName()).log(Level.SEVERE, null, ex);
            } catch (IllegalAccessException ex) {
                Logger.getLogger(Connector.class.getName()).log(Level.SEVERE, null, ex);
            }
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(Connector.class.getName()).log(Level.SEVERE, null, ex);
        }

    }

    /**************************************************
                Singleton Muster
   ***************************************************
   * @return
   */
    public static Connector getInstance() {
        if (uniqueInstance == null) {
                 uniqueInstance = new Connector();
        }
        return uniqueInstance;
    }
 
        public Connection getConnection() {

          return connection;
    }

        public void connect() {
        try {


            connection = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/<NAME DEINER DATENBANK>","root","root");
            System.out.println("Datenbank verbunden");

        }  catch (SQLException e) {
            e.printStackTrace();
        }

    }
   public void disconnect() {
        try {
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

}

in deiner Main Klasse schreibst Du folgendes:
Java:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package javaapplication13;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;


public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        try {
            Connector con = Connector.getInstance();
            con.connect();
            Connection co = con.getConnection();
            Statement stmt = co.createStatement();
            ResultSet r = stmt.executeQuery("SELECT * FROM <Tabellenname>");
            while(r.next()){
                System.out.println("Wert kurz="+r.getString("<STALTENNAME>"));
            }
        } catch (SQLException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        }


    }

}

Das sollte funktionieren.
eine Kleine Frage wie lange Programmierst du schon.

Gruß Manuela
 

mostwanted

Mitglied
Ist mein erstes Java Projekt, programmiere mit Eclipse.

1. Habe neues Projekt gemacht
2. Klasse "Connector" und "Main" neu erstellt
3. Inhalte kopiert und DB / Tabellennamen angepasst

Es klappt wirklich nicht. Was mache ich falsch?
 

mostwanted

Mitglied
Hier die Main Klasse:

ImageShack® - Online Photo and Video Hosting

Fehler: Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The method getConnection() from the type Connector refers to the missing type Connection

at javaapplication13.Main.main(Main.java:21)


Hier die Connector Klasse:

ImageShack® - Online Photo and Video Hosting

Fehler: Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The method getConnection() from the type Connector refers to the missing type Connection

at javaapplication13.Main.main(Main.java:21)


Wo fülle ich jetzt den Jtable?

Ich hatte ja anfangs den Code gepostet den ich ursprünglich hatte - müsste ich nicht einfach unter den jTable auf die DB Tabelle verweisen?
 

Manuela

Aktives Mitglied
Hallo,
Kann es sein dass du KEINE LIBARY (Mysql) in deinem Project hast.

Es zeigt einen Fehler in Eclipse bei import com.mysql.jdbc.Connection;

Also Ohne mysql Libary kann da nichts gehen.

Gruß Manuela
 

mostwanted

Mitglied
Jetzt funktioniert nicht einmal mehr der DB Connect meiner Ursprungsdatei. Connect auf MySQL DB funktionierte.

Habe MySQL am laufen und das funktioniert.
 

mostwanted

Mitglied
So. Habe das Tutorial mal durchgespielt und der erste schritt klappt fast einwandfrei.

wie kann ich jetzt das ganze mit

Java:
        int rows=0;
            while (r.next()) {
                tm.setRowCount(rows + 1);
                tm.setValueAt(r.getString("FLD_NAME"), rows, 0);
                tm.setValueAt(r.getString("FLD_VORNAME"), rows, 1);
                tm.setValueAt(r.getString("FLD_GEBURTSJAHR"), rows, 2);
                tm.setValueAt(r.getString("ID"), rows, 3);
                 rows++;
            }

darstellen?

Hier der bisherige sourcecode:

Java:
import java.sql.*;

public class Abfrage {
	
	public static void main(String[]args){
		
		try{				
				Class.forName("com.mysql.jdbc.Driver").newInstance();
				
				Connection con = DriverManager.getConnection(
						"jdbc:mysql://localhost/mydb","root","root");
				
				con.setReadOnly(true);
				Statement stmt = con.createStatement();
				ResultSet rs = stmt.executeQuery("Select * from produktausprägung");
				
				while (rs.next()){
					
					System.out.println(rs.getInt(+1)+" "+rs.getString(2)+rs.getString(3));
				}
				
				rs.close();
				stmt.close();
				con.close();
				
		}catch(Exception e){
			System.out.println("*** Fehlermeldung *** -> "+e);
		}
}
}
 

Manuela

Aktives Mitglied
Hallo,
ich habe dir den Kompletten Lösungsweg aufgezeigt.
Ich weiß nicht mehr was ich dir erklären kann das du das verstehst.

Das aus dem Video scheint ja jetzt zu funktionieren.
wenn du jetzt in dein Frame eine JTable einfügst und dann kannst du die Daten laden.

Gruß Manuela.

PS.: Kann jemand anders Ihm das weiter erklären, denn mein Latein ist zu Ende
ich habe Ihm schon alles gezeigt, wie es geht???
 

mostwanted

Mitglied
also hier habe ich die abfrage und das GUI zusammengefügt. ich verstehe allerdings immer noch nicht wo und wie ich genau hinbekomme das die daten aus der DB in die jtable vom GUI geschrieben werden.

kann mir bitte jemand weiter helfen?

Java:
import java.sql.*;

/*
 * artikelverwaltung1.java
 *
 * Created on __DATE__, __TIME__
 */

/**
 *
 * @author  __USER__
 */
public class artikelverwaltung1 extends javax.swing.JDialog {

	/** Creates new form artikelverwaltung1 */
	public artikelverwaltung1(java.awt.Frame parent, boolean modal) {
		super(parent, modal);
		initComponents();
	}

	public class Abfrage {
		
		public static void main(String[]args){
			
			try{				
					Class.forName("com.mysql.jdbc.Driver").newInstance();
					
					Connection con = DriverManager.getConnection(
							"jdbc:mysql://localhost/mydb","root","root");
					
					con.setReadOnly(true);
					Statement stmt = con.createStatement();
					ResultSet rs = stmt.executeQuery("Select * from produktausprägung");
					
					while (rs.next()){
						
						System.out.println(rs.getInt(+1)+" "+rs.getString(2)+rs.getString(3));
					}
					
					rs.close();
					stmt.close();
					con.close();
					
			}catch(Exception e){
				System.out.println("*** Fehlermeldung *** -> "+e);
			}
	}
	}	
	
	
	/** This method is called from within the constructor to
	 * initialize the form.
	 * WARNING: Do NOT modify this code. The content of this method is
	 * always regenerated by the Form Editor.
	 */
	//GEN-BEGIN:initComponents
	// <editor-fold defaultstate="collapsed" desc="Generated Code">
	private void initComponents() {

		jScrollPane1 = new javax.swing.JScrollPane();
		jTable1 = new javax.swing.JTable();

		setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);

		jTable1.setModel(new javax.swing.table.DefaultTableModel(
				new Object[][] { { null, null, null, null, null },
						{ null, null, null, null, null },
						{ null, null, null, null, null },
						{ null, null, null, null, null } }, new String[] {
						"ID", "Bezeichnung", "Preis", "bearbeiten", "löschen" }) {
			Class[] types = new Class[] { java.lang.Object.class,
					java.lang.Object.class, java.lang.Object.class,
					java.lang.Boolean.class, java.lang.Boolean.class };

			public Class getColumnClass(int columnIndex) {
				return types[columnIndex];
			}
		});
		jScrollPane1.setViewportView(jTable1);

		javax.swing.GroupLayout layout = new javax.swing.GroupLayout(
				getContentPane());
		getContentPane().setLayout(layout);
		layout.setHorizontalGroup(layout.createParallelGroup(
				javax.swing.GroupLayout.Alignment.LEADING).addGroup(
				javax.swing.GroupLayout.Alignment.TRAILING,
				layout.createSequentialGroup()
						.addContainerGap(29, Short.MAX_VALUE)
						.addComponent(jScrollPane1,
								javax.swing.GroupLayout.PREFERRED_SIZE, 452,
								javax.swing.GroupLayout.PREFERRED_SIZE)
						.addGap(22, 22, 22)));
		layout.setVerticalGroup(layout.createParallelGroup(
				javax.swing.GroupLayout.Alignment.LEADING).addGroup(
				layout.createSequentialGroup()
						.addGap(107, 107, 107)
						.addComponent(jScrollPane1,
								javax.swing.GroupLayout.PREFERRED_SIZE, 93,
								javax.swing.GroupLayout.PREFERRED_SIZE)
						.addContainerGap(135, Short.MAX_VALUE)));

		pack();
	}// </editor-fold>
	//GEN-END:initComponents

	/**
	 * @param args the command line arguments
	 */
	public static void main(String args[]) {
		java.awt.EventQueue.invokeLater(new Runnable() {
			public void run() {
				artikelverwaltung1 dialog = new artikelverwaltung1(
						new javax.swing.JFrame(), true);
				dialog.addWindowListener(new java.awt.event.WindowAdapter() {
					public void windowClosing(java.awt.event.WindowEvent e) {
						System.exit(0);
					}
				});
				dialog.setVisible(true);
			}
		});
	}

	//GEN-BEGIN:variables
	// Variables declaration - do not modify
	private javax.swing.JScrollPane jScrollPane1;
	private javax.swing.JTable jTable1;
	// End of variables declaration//GEN-END:variables

}
 

mostwanted

Mitglied
so. habe gerade nochmals das DB connect angepasst. bin jetzt glaube ich wieder am anfang angelangt... sprich DB connect und GUI an sich funktionieren. leider ohne inhalt der daten aus der DB...

Java:
import java.sql.*;

/*
 * artikelverwaltung1.java
 *
 * Created on __DATE__, __TIME__
 */

/**
 *
 * @author  __USER__
 */
public class artikelverwaltung1 extends javax.swing.JDialog {

	
	private Connection mydbconn = null;  
	
	/** Creates new form artikelverwaltung1 */
	public artikelverwaltung1(java.awt.Frame parent, boolean modal) {
		super(parent, modal);

		initComponents();

        //DB Connection erstellen
        try {
             String userName = "root";
             String password = "root";
             String url = "jdbc:mysql://localhost/mydb";
             Class.forName("com.mysql.jdbc.Driver").newInstance();
             this.mydbconn = DriverManager.getConnection(url, userName, password);
             System.out.println("Database connection established");
             } catch (Exception e) {
               System.err.println("Cannot connect to database server ");
               e.printStackTrace();
             }
    }
 	
	
	/** This method is called from within the constructor to
	 * initialize the form.
	 * WARNING: Do NOT modify this code. The content of this method is
	 * always regenerated by the Form Editor.
	 */
	//GEN-BEGIN:initComponents
	// <editor-fold defaultstate="collapsed" desc="Generated Code">
	private void initComponents() {

		jScrollPane1 = new javax.swing.JScrollPane();
		jTable1 = new javax.swing.JTable();

		setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);

		jTable1.setModel(new javax.swing.table.DefaultTableModel(
				new Object[][] { { null, null, null, null, null },
						{ null, null, null, null, null },
						{ null, null, null, null, null },
						{ null, null, null, null, null } }, new String[] {
						"ID", "Bezeichnung", "Preis", "bearbeiten", "löschen" }) {
			Class[] types = new Class[] { java.lang.Object.class,
					java.lang.Object.class, java.lang.Object.class,
					java.lang.Boolean.class, java.lang.Boolean.class };

			public Class getColumnClass(int columnIndex) {
				return types[columnIndex];
			}
		});
		jScrollPane1.setViewportView(jTable1);

		javax.swing.GroupLayout layout = new javax.swing.GroupLayout(
				getContentPane());
		getContentPane().setLayout(layout);
		layout.setHorizontalGroup(layout.createParallelGroup(
				javax.swing.GroupLayout.Alignment.LEADING).addGroup(
				javax.swing.GroupLayout.Alignment.TRAILING,
				layout.createSequentialGroup()
						.addContainerGap(29, Short.MAX_VALUE)
						.addComponent(jScrollPane1,
								javax.swing.GroupLayout.PREFERRED_SIZE, 452,
								javax.swing.GroupLayout.PREFERRED_SIZE)
						.addGap(22, 22, 22)));
		layout.setVerticalGroup(layout.createParallelGroup(
				javax.swing.GroupLayout.Alignment.LEADING).addGroup(
				layout.createSequentialGroup()
						.addGap(107, 107, 107)
						.addComponent(jScrollPane1,
								javax.swing.GroupLayout.PREFERRED_SIZE, 93,
								javax.swing.GroupLayout.PREFERRED_SIZE)
						.addContainerGap(135, Short.MAX_VALUE)));

		pack();
	}// </editor-fold>
	//GEN-END:initComponents

	/**
	 * @param args the command line arguments
	 */
	public static void main(String args[]) {
		java.awt.EventQueue.invokeLater(new Runnable() {
			public void run() {
				artikelverwaltung1 dialog = new artikelverwaltung1(
						new javax.swing.JFrame(), true);
				dialog.addWindowListener(new java.awt.event.WindowAdapter() {
					public void windowClosing(java.awt.event.WindowEvent e) {
						System.exit(0);
					}
				});
				dialog.setVisible(true);
			}
		});
	}

	//GEN-BEGIN:variables
	// Variables declaration - do not modify
	private javax.swing.JScrollPane jScrollPane1;
	private javax.swing.JTable jTable1;
	// End of variables declaration//GEN-END:variables

}
 

Manuela

Aktives Mitglied
Hallo,
so jetzt hast du es geschaft dass ich dir deine Arbeit abgenommen hab.
Ich habe es auch getestet bei mir funktioniert es.
Java:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package javaapplication14;
import java.sql.*;
import javax.swing.table.DefaultTableModel;

/*
 * artikelverwaltung1.java
 *
 * Created on __DATE__, __TIME__
 */

/**
 *
 * @author  __USER__
 */
public class artikelverwaltung1 extends javax.swing.JDialog {


    private Connection mydbconn = null;
    public DefaultTableModel tm;
    /** Creates new form artikelverwaltung1 */
    public artikelverwaltung1(java.awt.Frame parent, boolean modal) {
        super(parent, modal);

        initComponents();

         tm = new DefaultTableModel(new String[]{"Name", "M/T", "Funktion", "Kostenträger"}, 1){};

        jTable1.setModel(tm);
        //DB Connection erstellen
        try {
             String userName = "root";
             String password = "root";
             String url = "jdbc:mysql://localhost/deineDB";
             Class.forName("com.mysql.jdbc.Driver").newInstance();
             this.mydbconn = DriverManager.getConnection(url, userName, password);
             System.out.println("Database connection established");

             Statement stmt = mydbconn.createStatement();
             ResultSet r = stmt.executeQuery("SELECT * From ");
             int rows =0;
             while(r.next()){
                tm.setRowCount(rows + 1);
                tm.setValueAt(r.getInt(1), rows, 0);
                tm.setValueAt(r.getString(2), rows, 1);
                tm.setValueAt(r.getString(3), rows, 2);
                tm.setValueAt(r.getString(4), rows, 3);

                //      //  //      System.out.println("Name : " + r.getString("FLD_NAME"));
                rows++;

             }

             } catch (Exception e) {
               System.err.println("Cannot connect to database server ");
               e.printStackTrace();
             }
    }





    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    //GEN-BEGIN:initComponents
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        jScrollPane1 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);

        jTable1.setModel(new javax.swing.table.DefaultTableModel(
                new Object[][] { { null, null, null, null, null },
                        { null, null, null, null, null },
                        { null, null, null, null, null },
                        { null, null, null, null, null } }, new String[] {
                        "ID", "Bezeichnung", "Preis", "bearbeiten", "löschen" }) {
            Class[] types = new Class[] { java.lang.Object.class,
                    java.lang.Object.class, java.lang.Object.class,
                    java.lang.Boolean.class, java.lang.Boolean.class };

            public Class getColumnClass(int columnIndex) {
                return types[columnIndex];
            }
        });
        jScrollPane1.setViewportView(jTable1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(
                getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(layout.createParallelGroup(
                javax.swing.GroupLayout.Alignment.LEADING).addGroup(
                javax.swing.GroupLayout.Alignment.TRAILING,
                layout.createSequentialGroup()
                        .addContainerGap(29, Short.MAX_VALUE)
                        .addComponent(jScrollPane1,
                                javax.swing.GroupLayout.PREFERRED_SIZE, 452,
                                javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(22, 22, 22)));
        layout.setVerticalGroup(layout.createParallelGroup(
                javax.swing.GroupLayout.Alignment.LEADING).addGroup(
                layout.createSequentialGroup()
                        .addGap(107, 107, 107)
                        .addComponent(jScrollPane1,
                                javax.swing.GroupLayout.PREFERRED_SIZE, 93,
                                javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addContainerGap(135, Short.MAX_VALUE)));

        pack();
    }// </editor-fold>
    //GEN-END:initComponents

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                artikelverwaltung1 dialog = new artikelverwaltung1(
                        new javax.swing.JFrame(), true);
                dialog.addWindowListener(new java.awt.event.WindowAdapter() {
                    public void windowClosing(java.awt.event.WindowEvent e) {
                        System.exit(0);
                    }
                });
                dialog.setVisible(true);
            }
        });
    }

    //GEN-BEGIN:variables
    // Variables declaration - do not modify
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable jTable1;
    // End of variables declaration//GEN-END:variables

}
ich würde dir raten ein Buch über Java zulesen kann hilfreich sein.

viel spass dabei Manuela
 
Zuletzt bearbeitet:

mostwanted

Mitglied
erstmal vielen herzlichen dank! habe es zum laufen gebracht! super!

noch ganz kurz:

verstehe ich das richtig das der obere teil eigentlich ausreichen würde? in der unteren code hälfte wird die tabelle die ich mittels matisse form erstellt habe implementiert (jTable1.setModel....; null; null; etc.). brauche ich das jetzt überhaupt noch? ich habe da eben noch 2 boolean in der tabelle modelliert die jetzt nicht mehr dargestellt werden.

nochmals viele dank für deine super hilfe!

Java:
import java.sql.*;
import javax.swing.table.DefaultTableModel;
 
/*
 * artikelverwaltung1.java
 *
 * Created on __DATE__, __TIME__
 */
 
/**
 *
 * @author  __USER__
 */
public class artikelverwaltung1 extends javax.swing.JDialog {
 
 
    private Connection mydbconn = null;
    public DefaultTableModel tm;
    /** Creates new form artikelverwaltung1 */
    public artikelverwaltung1(java.awt.Frame parent, boolean modal) {
        super(parent, modal);
 
        initComponents();
 
         tm = new DefaultTableModel(new String[]{"ID", "Bezeichnung", "Preis"}, 1){};
 
        jTable1.setModel(tm);
        //DB Connection erstellen
        try {
             String userName = "root";
             String password = "root";
             String url = "jdbc:mysql://localhost/mydb";
             Class.forName("com.mysql.jdbc.Driver").newInstance();
             this.mydbconn = DriverManager.getConnection(url, userName, password);
             System.out.println("Database connection established");
 
             Statement stmt = mydbconn.createStatement();
             ResultSet r = stmt.executeQuery("SELECT * From produktausprägung");
             int rows =0;
             while(r.next()){
                tm.setRowCount(rows + 1);
                tm.setValueAt(r.getInt(1), rows, 0);
                tm.setValueAt(r.getString(2), rows, 1);
                tm.setValueAt(r.getString(3), rows, 2);
           
                System.out.println("idProduktausprägung : " + r.getString("idProduktausprägung"));
                System.out.println("Bezeichnung : " + r.getString("Bezeichnung"));
                System.out.println("Preis : " + r.getString("Preis"));
             
                rows++;
 
             }
 
             } catch (Exception e) {
               System.err.println("Cannot connect to database server ");
               e.printStackTrace();
             }
    }
 
 

    private void initComponents() {
 
        jScrollPane1 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();
        
    
 
        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        
 
        jTable1.setModel(new javax.swing.table.DefaultTableModel(
                new Object[][] { { null, null, null, null, null },
                        { null, null, null, null, null },
                        { null, null, null, null, null },
                        { null, null, null, null, null } }, new String[] {
                        "ID", "Bezeichnung", "Preis", "bearbeiten", "löschen" }) {
            Class[] types = new Class[] { java.lang.Object.class,
                    java.lang.Object.class, java.lang.Object.class,
                    java.lang.Boolean.class, java.lang.Boolean.class };
 
            public Class getColumnClass(int columnIndex) {
                return types[columnIndex];
            }
        });
        jScrollPane1.setViewportView(jTable1);
 
        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(
                getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(layout.createParallelGroup(
                javax.swing.GroupLayout.Alignment.LEADING).addGroup(
                javax.swing.GroupLayout.Alignment.TRAILING,
                layout.createSequentialGroup()
                        .addContainerGap(29, Short.MAX_VALUE)
                        .addComponent(jScrollPane1,
                                javax.swing.GroupLayout.PREFERRED_SIZE, 452,
                                javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(22, 22, 22)));
        layout.setVerticalGroup(layout.createParallelGroup(
                javax.swing.GroupLayout.Alignment.LEADING).addGroup(
                layout.createSequentialGroup()
                        .addGap(107, 107, 107)
                        .addComponent(jScrollPane1,
                                javax.swing.GroupLayout.PREFERRED_SIZE, 93,
                                javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addContainerGap(135, Short.MAX_VALUE)));
 
        pack();
    }// </editor-fold>
    //GEN-END:initComponents
 
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                artikelverwaltung1 dialog = new artikelverwaltung1(
                        new javax.swing.JFrame(), true);
                dialog.addWindowListener(new java.awt.event.WindowAdapter() {
                    public void windowClosing(java.awt.event.WindowEvent e) {
                        System.exit(0);
                    }
                });
                dialog.setVisible(true);
            }
        });
    }
 
    //GEN-BEGIN:variables
    // Variables declaration - do not modify
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable jTable1;
    // End of variables declaration//GEN-END:variables
 
}
 

Manuela

Aktives Mitglied
Hallo,
für das anzeigen deiner Boolean Kästchen ist das TableModel zuständig.

Java:
              tm = new DefaultTableModel(new String[]{"Na", "M", "Funktion", "Kostenträger"}, 1) {
 
            public Class getColumnClass(int columnIndex) {
                  switch (columnIndex) {                
                            case 1: return Integer.class;
                            case 2: return Double.class;
                            case 3: return Boolean.class;
                    default:
                        return String.class;
 
                }
            }
 
            ;
        };

aber ich kann dir nur Raten kauf dir ein Buch ich kann dir dass nur Empfehlen denn dir fehlt die Grundlagen. Ich habe mir das Doppelband von "Core Java 2" Band1 Grundwissen, Band2 Expertenwissen damals zugelegt und ich benutze es auch heute noch.

denn deine nächsten Fragen sind wie kann ich denn meine Daten die ich geändert habe auch abspeichern, neuladen der Daten usw...

Gruß Manuela
 

mostwanted

Mitglied
ja aber nochmals zu meiner frage:

funktion erster Teil: connect, db daten holen und anzeigen

Java:
import java.sql.*;
import javax.swing.table.DefaultTableModel;
 
/*
 * artikelverwaltung1.java
 *
 * Created on __DATE__, __TIME__
 */
 
/**
 *
 * @author  __USER__
 */
public class artikelverwaltung1 extends javax.swing.JDialog {
 
 
    private Connection mydbconn = null;
    public DefaultTableModel tm;
    /** Creates new form artikelverwaltung1 */
    public artikelverwaltung1(java.awt.Frame parent, boolean modal) {
        super(parent, modal);
 
        initComponents();
 
         tm = new DefaultTableModel(new String[]{"ID", "Bezeichnung", "Preis"}, 1){};
 
        jTable1.setModel(tm);
        //DB Connection erstellen
        try {
             String userName = "root";
             String password = "root";
             String url = "jdbc:mysql://localhost/mydb";
             Class.forName("com.mysql.jdbc.Driver").newInstance();
             this.mydbconn = DriverManager.getConnection(url, userName, password);
             System.out.println("Database connection established");
 
             Statement stmt = mydbconn.createStatement();
             ResultSet r = stmt.executeQuery("SELECT * From produktausprägung");
             int rows =0;
             while(r.next()){
                tm.setRowCount(rows + 1);
                tm.setValueAt(r.getInt(1), rows, 0);
                tm.setValueAt(r.getString(2), rows, 1);
                tm.setValueAt(r.getString(3), rows, 2);
           
                System.out.println("idProduktausprägung : " + r.getString("idProduktausprägung"));
                System.out.println("Bezeichnung : " + r.getString("Bezeichnung"));
                System.out.println("Preis : " + r.getString("Preis"));
             
                rows++;
 
             }
 
             } catch (Exception e) {
               System.err.println("Cannot connect to database server ");
               e.printStackTrace();
             }
    }

funktion zweiter teil: mir nicht ganz klar da ich diesen teil ja mit dem Matisse Form erstellt habe (siehe zeile 11 bis 19) hier zeige ich ja nochmals eine tabelle?

Java:
    private void initComponents() {
 
        jScrollPane1 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();
        
    
 
        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        
 
        jTable1.setModel(new javax.swing.table.DefaultTableModel(
                new Object[][] { { null, null, null, null, null },
                        { null, null, null, null, null },
                        { null, null, null, null, null },
                        { null, null, null, null, null } }, new String[] {
                        "ID", "Bezeichnung", "Preis", "bearbeiten", "löschen" }) {
            Class[] types = new Class[] { java.lang.Object.class,
                    java.lang.Object.class, java.lang.Object.class,
                    java.lang.Boolean.class, java.lang.Boolean.class };
 
            public Class getColumnClass(int columnIndex) {
                return types[columnIndex];
            }
        });
        jScrollPane1.setViewportView(jTable1);
 
        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(
                getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(layout.createParallelGroup(
                javax.swing.GroupLayout.Alignment.LEADING).addGroup(
                javax.swing.GroupLayout.Alignment.TRAILING,
                layout.createSequentialGroup()
                        .addContainerGap(29, Short.MAX_VALUE)
                        .addComponent(jScrollPane1,
                                javax.swing.GroupLayout.PREFERRED_SIZE, 452,
                                javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(22, 22, 22)));
        layout.setVerticalGroup(layout.createParallelGroup(
                javax.swing.GroupLayout.Alignment.LEADING).addGroup(
                layout.createSequentialGroup()
                        .addGap(107, 107, 107)
                        .addComponent(jScrollPane1,
                                javax.swing.GroupLayout.PREFERRED_SIZE, 93,
                                javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addContainerGap(135, Short.MAX_VALUE)));
 
        pack();
    }// </editor-fold>
    //GEN-END:initComponents
 
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                artikelverwaltung1 dialog = new artikelverwaltung1(
                        new javax.swing.JFrame(), true);
                dialog.addWindowListener(new java.awt.event.WindowAdapter() {
                    public void windowClosing(java.awt.event.WindowEvent e) {
                        System.exit(0);
                    }
                });
                dialog.setVisible(true);
            }
        });
    }
 
    //GEN-BEGIN:variables
    // Variables declaration - do not modify
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable jTable1;
    // End of variables declaration//GEN-END:variables
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Juelin Java und MySQL MariaDB - WHERE-Klausel Datenbankprogrammierung 17
W MySQL-Connector funktioniert nicht über WLAN -> MacOS Datenbankprogrammierung 10
Juelin MySQL Datenbankmit glassfish und Netbeans Datenbankprogrammierung 18
Auf MySql Datenbank zugreifen funktioniert nicht Datenbankprogrammierung 8
TheSkyRider MySQL Datenbankzuordnung in Verbindung mit Java Datenbankprogrammierung 7
Warum funktioniert MySQL nicht Datenbankprogrammierung 8
M MySQL Datenbank in Array Datenbankprogrammierung 2
P MySQL- Neues Passwort Datenbankprogrammierung 1
btwX28 mysql abfrage über phpmyadmin Datenbankprogrammierung 8
sserio SQL oder MySQL Datenbankprogrammierung 44
OnDemand Mysql Query Builder Datenbankprogrammierung 1
Z MySQL "Too many connections" auch nach schliessen der Connections. Datenbankprogrammierung 10
yakazuqi MySQL MySQL Connection reset Datenbankprogrammierung 7
OnDemand MySql Foreign Key nötig oder unnötig Datenbankprogrammierung 3
M Mysql Views und Hibernate Caching Datenbankprogrammierung 4
W MYSQL Datenbank Login Android Datenbankprogrammierung 3
OnDemand MySQL und mongoDB wann macht was Sinn? Datenbankprogrammierung 11
bueseb84 Spring Boot : Update Mysql Datenbank Datenbankprogrammierung 1
Avalon Attribute werden mit Unterstrich in eine MySQL Datenbank eingetragen Datenbankprogrammierung 10
D MYSQL goorm IDE - Wie speichern? Datenbankprogrammierung 0
OnDemand Mysql UPDATE if condition Datenbankprogrammierung 14
D MySQL Geburtsdatum per KW abfragen Datenbankprogrammierung 1
C Java MySQL check if value exists in database Datenbankprogrammierung 2
H Fehler bei getConnection zu MySQL Datenbank Datenbankprogrammierung 18
J MySQL - Primary Key Date,Time vs ID Datenbankprogrammierung 16
ruutaiokwu MySQL: Messwerte, welche stagnieren interpolieren? Datenbankprogrammierung 2
S Datenbank MySQL und Java Datenbankprogrammierung 8
Thallius MySQL JDBC auf Linux Server zu mySQL DB auf anderem Linux Server wirft Access denied Datenbankprogrammierung 5
P Adressadministration mit Java und mySQL Datenbankprogrammierung 14
D MySQL Abfrage Datenbankprogrammierung 5
D MySQL Abfrage sortieren Datenbankprogrammierung 4
platofan23 MySQL Java Programm findet Treiber für mySQL auf Debian-Server nicht? Datenbankprogrammierung 11
J MySQL MySQL Risiken bei Stromausfall minimieren Datenbankprogrammierung 9
D MySQL Abfrage SUM datediff Datenbankprogrammierung 3
H MySQL MySQL - Keine Verbindung zur Datenbank?! Datenbankprogrammierung 4
G MySQL Problem mit MySQL verbindung Datenbankprogrammierung 8
X MySQL Java hat keinen Zugriff auf MySQL Datenbankprogrammierung 9
Z [JDBC][MYSQL] Access denied Datenbankprogrammierung 7
D MySQL Connection richtig herstellen. Wie ? Datenbankprogrammierung 7
D Multiple Connection mit MySQL Datenbankprogrammierung 4
D MySQL Eibinden des "mysql-connector" in eine fertige Jar Datenbankprogrammierung 3
L MySQL Android zu externer MySQL Datenbank verbinden Datenbankprogrammierung 5
P Daten in eine mySQL Datenbank einfügen Datenbankprogrammierung 4
D MySQL Zeilen kumulieren Datenbankprogrammierung 8
D MySQL Abfrage mit kumulierten Werten Datenbankprogrammierung 16
K Servlet-MySQL DB Datenbankprogrammierung 2
X MySQL Json String in MySQL einfügen. Datenbankprogrammierung 20
OnDemand Update auf Mysql läuft nicht durch Datenbankprogrammierung 30
K Java Object mit Hibernate in MySQL abspeichern Datenbankprogrammierung 1
D Datumsformat aus MySQL ändern Datenbankprogrammierung 15
G MySQL Java Problem: Nullpointer Exception obwohl Daten vorhanden sind? Datenbankprogrammierung 2
K MySQL LAN-MySQL Server mit XAMPP Datenbankprogrammierung 2
R ERModel der Datebanken (ORACLE,MySQL,MS-SQL usw) Datenbankprogrammierung 4
X MySQL In MySQL Funktionen erstellen, wenn Zelle leer dann andere Zelle ändern? Datenbankprogrammierung 9
K Anfängerfrage CSV in MySQL Datenbankprogrammierung 41
I MySQL Wert nachträglich bearbeiten Datenbankprogrammierung 1
N MySQL Datenbank lokal Datenbankprogrammierung 3
B MySQL: Port ändern über GUI? Wo und wie Port ändern? Datenbankprogrammierung 0
B MySQL installieren - silent / User anlegen Datenbankprogrammierung 3
X MySQL Verbindungdsaufbau MySql auf Ubuntu-Server Datenbankprogrammierung 10
F MySQL Wie kann ich in Java Datensätze aus einer MySQL Datenbank gezielt in einzelne Arrays schreiben? Datenbankprogrammierung 9
P MySQL JPA / MySQL - Fehler bei type=innoDB Datenbankprogrammierung 8
M MySQL MySQL DATETIME-Import Datenbankprogrammierung 9
P MySQL Connection Global Datenbankprogrammierung 13
J mySQL- Java Application - Zugriff über Internet Datenbankprogrammierung 3
P MySQL-Verbindung in anderer Klasse nutzen Datenbankprogrammierung 2
D JavaFX Anwendung zugriff auf MySQL DB. Datenbankprogrammierung 2
D MySQL Grundsätzliche Fragen zu MySQL Datenbankprogrammierung 3
B MySQL LogIn Daten im Code verstecken Datenbankprogrammierung 3
M MySQL-Syntax-Fehler Datenbankprogrammierung 1
M In MySql Datenbank schreiben Datenbankprogrammierung 6
D mySQL Timestamp in RegularTimePeriod bzw Second Datenbankprogrammierung 3
H SHOW Tables in Java/MySQL Datenbankprogrammierung 8
windl MySQL und HSQLDB Datenbankprogrammierung 4
S Anbindung zur mysql von mit Swing und AWT Datenbankprogrammierung 22
F MySQL+ Netbeans: Datenbanken mit Automatisch generierten Entity Classes get und set Datenbankprogrammierung 2
I MySQL Hibernate / MySQL alias in WHERE clause Datenbankprogrammierung 1
C MYSQL kann wert nicht eintragen Datenbankprogrammierung 3
D Aktualisierung einer ListView mit Daten aus MySQL-DB Datenbankprogrammierung 5
F BPlaced MySql Datenbank ansprechen Datenbankprogrammierung 5
S MySQL MySQL will einfach nicht, bitte um Rat Datenbankprogrammierung 4
M MySQL Datenbank durchsuchen Datenbankprogrammierung 5
Z MySQL mysql Facharbeit: Tipps und Ideen gesucht Datenbankprogrammierung 5
dat_vin JavaFX Datenbankverbindung über JPA und MySQL Error Datenbankprogrammierung 0
K MySQL Datenbank 2facher Zugriff Datenbankprogrammierung 1
Z MySQL Shopsystem mit mysql und Java Datenbankprogrammierung 8
S [MySQL] Topliste Datenbankprogrammierung 2
H Datenbank-Anbindung Java/MySQL Datenbankprogrammierung 2
T MySQL MySQL - Insert into fügt zwei identische Datensätze ein Datenbankprogrammierung 2
A Eine MySQL Zeile mit JDBC löschen Datenbankprogrammierung 5
J Dateien in MySQL speichern & indizieren Datenbankprogrammierung 2
B MySQL MySQL-Abfrage von aufsummierter Zeit Datenbankprogrammierung 3
K MySQL Datenbankbackups Datenbankprogrammierung 5
P MySQL INSERT / UPDATE MySQL - perStoredProcedure oder direkt im Code Datenbankprogrammierung 3
kaoZ HyperSQL vs. MYSQL Datenbankprogrammierung 4
L JSONArray/JSONObject MySQL-Servlet Abfrage Datenbankprogrammierung 2
V Internationalization mit MySql Datenbankprogrammierung 1
K Adressverwaltung mit MySql und Java? Datenbankprogrammierung 11
M Java Mysql verbinden Datenbankprogrammierung 3
L Zugriff auf lokal gespeicherte mySQL Datenbank Datenbankprogrammierung 3

Ähnliche Java Themen

Neue Themen


Oben