in MySQL Daten Bank speichern

somahu

Mitglied
Abend, Ich hab ein Geometric Calculator Programmiert, ich will dass, die werte die in der Tabelle gespeichert werden, in einer MSQL Daten Bank auch gespeichert werden.
Ich hab eine Tabelle gebaut mit MySQL workbench aber ich kriege es nicht hin die werte auch da zu speichern/zu sehen !
vielen dank für eure Hilfe

GUI:
Java:
package de.sbsapp.examples.geometriccalculator.gui;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.table.DefaultTableModel;

import de.sbsapp.examples.geometriccalculator.jtrainertablemodel.JTrainerTableModel;
import de.sbsapp.examples.geometriccalculator.model.Circle;
import de.sbsapp.examples.geometriccalculator.model.Geometrics;
import de.sbsapp.examples.geometriccalculator.model.Square;
import de.sbsapp.examples.geometriccalculator.model.Triangle;

public class GUI 
	implements GeometricCalculatorListViewHandler
{
	private JFrame frame;
	private boolean isEditing = true;
	private ArrayList<Geometrics> list = new ArrayList<Geometrics>();
	private JPanel pnlButton;
	private JPanel pnlTable;
	private JPanel pnlExit;
	public JTable tblResults;
	public JTrainerTableModel model;

	
	private CirclePanel _circlePanel;
	private TrianglePanel _trianglePanel;
	private SquarePanel _squarePanel;
	

	// private JTable tblResults;

	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					GUI window = new GUI();
					window.frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	public GUI() {
		initialize();
	}

	private void initialize() {
		frame = new JFrame();
		frame.setBounds(200, 200, 600, 450);
		frame.setTitle("A & P Calculator");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.getContentPane().setLayout(null);

		pnlButton = new JPanel(new GridLayout(1, 3));
		pnlButton.setBounds(50, 20, 500, 50);

		pnlTable = new JPanel();
		pnlTable.setBounds(155, 110, 460, 190);

		pnlExit = new JPanel(new GridLayout(1, 1));
		pnlExit.setBounds(460, 350, 90, 40);
		
		
		
		JButton btnButtonExit = new JButton("Exit");
		JButton btnButtonCircle = new JButton("Circle");

		JButton btnButtonSquare = new JButton("Square");

		JButton btnButtonTriangle = new JButton("Triangle");
	

		final DefaultTableModel model = new DefaultTableModel();

		tblResults = new JTable();
		tblResults
				.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
		tblResults.setModel(model);
		model.addColumn("Symbol");
		model.addColumn("Name");
		model.addColumn("Area");
		model.addColumn("Perimeter");

		JScrollPane pane = new JScrollPane(tblResults);
		pnlTable.add(pane);

		tblResults.setPreferredScrollableViewportSize(new Dimension(300, 150));
		tblResults.setFillsViewportHeight(true);

		JScrollPane scrollPane = new JScrollPane(tblResults);

		pnlTable.add(scrollPane);
		pnlButton.add(btnButtonSquare);
		pnlButton.add(btnButtonCircle);
		pnlButton.add(btnButtonTriangle);
		pnlExit.add(btnButtonExit);
		
		

		// ///////////////////////////////
		// //// TRIANGEL PANEL ///////////////////////////////////////
		// //////////////////////////////

		_trianglePanel = new TrianglePanel(this);
		_trianglePanel.initialize();
		frame.getContentPane().add(_trianglePanel);

		// ///////////////////////////////
		// //// CIRCLE PANEL //////////
		// //////////////////////////////
		_circlePanel = new CirclePanel(this);
		_circlePanel.initialize();
		frame.getContentPane().add(_circlePanel);
		
		// ///////////////////////////////
		// //// OTHER PANELS //////////
		// //////////////////////////////
		frame.getContentPane().add(pnlButton);
		frame.getContentPane().add(pnlTable);
		frame.getContentPane().add(pnlExit);

		// ///////////////////////////////
		// //// SQUARE PANEL //////////
		// //////////////////////////////
		_squarePanel = new SquarePanel(this);
		_squarePanel.initialize();
		frame.getContentPane().add(_squarePanel);

		// ///////////////////////////////
		// //// EDIT BUTTON UND EVENT-LISTENER //////////
		// //////////////////////////////

		final JButton btnEditValue = new JButton("edit value");
		btnEditValue.addActionListener(new EditValueAction(btnEditValue));

		// ///////////////////////////////
		// //// ADD TRIANGLE BUTTON EVENT_HANDLER //////////
		// //////////////////////////////

		btnEditValue.setBounds(265, 306, 117, 29);
		frame.getContentPane().add(btnEditValue);

		// ///////////////////////////////
		// //// DELETE BUTTON EVENT_HANDLER //////////
		// //////////////////////////////

		JButton btnDeleteValue = new JButton("delete value");
		btnDeleteValue.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				int row = tblResults.getSelectedRow();
				DefaultTableModel model = (DefaultTableModel) tblResults
						.getModel();
				model.removeRow(row);
				list.remove(row);

			}
		});
		btnDeleteValue.setBounds(394, 306, 117, 29);
		frame.getContentPane().add(btnDeleteValue);

		// ///////////////////////////////
		// //// PANEL BUTTON EVENT_HANDLER (SQUARE / CIRCLE / TRIANGLE)
		// //////////
		// //////////////////////////////

		btnButtonSquare.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				_circlePanel.setVisible(false);
				_squarePanel.setVisible(true);
				_trianglePanel.setVisible(false);
			}
		});

		btnButtonCircle.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				_circlePanel.setVisible(true);
				_squarePanel.setVisible(false);
				_trianglePanel.setVisible(false);
			}
		});

		btnButtonTriangle.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				_circlePanel.setVisible(false);
				_squarePanel.setVisible(false);
				_trianglePanel.setVisible(true);
			}
		});

		btnButtonExit.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent exit) {
				System.exit(0);

			}

		});

	}
	
	
	class EditValueAction implements ActionListener 
	{
		final JButton _btnEditValue;
		
		
		public EditValueAction(JButton btnEditValue)
		{
			_btnEditValue = btnEditValue;
		}

		@Override
		public void actionPerformed(ActionEvent e) 
		{
			
			
			
			int row = tblResults.getSelectedRow();
			_btnEditValue.setText("save values");

			if (isEditing == true) {
				isEditing = false;

				if (list.get(row) instanceof Square) {
					_squarePanel.setVisible(true);
					_circlePanel.setVisible(false);
					_trianglePanel.setVisible(false);

					//TODO change it 
					_squarePanel._nameSquare.setText(list.get(row).getName());
					Square actSquare = (Square) list.get(row);
					
					//TODO change it
					String str = String.valueOf(actSquare.getSideA());
					_squarePanel._txtSideA.setText(str);

					//TODO change it
					String.valueOf(actSquare.getSideB());
					_squarePanel._txtSideB.setText(str);

				} else if (list.get(row) instanceof Circle) {

					_squarePanel.setVisible(false);
					_circlePanel.setVisible(true);
					_trianglePanel.setVisible(false);

					//TODO change it
					_circlePanel._nameCirc.setText(list.get(row).getName());

					Circle actCircle = (Circle) list.get(row);

					String str = String.valueOf(actCircle.getRadius());
					//TODO change it
					_circlePanel._txtRadius.setText(str);

				} else if (list.get(row) instanceof Triangle) {

					_squarePanel.setVisible(false);
					_circlePanel.setVisible(false);
					_trianglePanel.setVisible(true);

					
					//TODO change it
					_trianglePanel._nameTriangle.setText(list.get(row).getName());

					Triangle actTri = (Triangle) list.get(row);

					String str = String.valueOf(actTri.getSideA());
					//TODO change it
					_trianglePanel._txtTriA.setText(str);

					String str2 = String.valueOf(actTri.getSideB());
					//TODO change it
					_trianglePanel._txtTriB.setText(str2);

					String str3 = String.valueOf(actTri.getSideC());
					//TODO change it
					_trianglePanel._txtTriC.setText(str3);

					String str4 = String.valueOf(actTri.getHeight());
					//TODO change it
					_trianglePanel._txtHeight.setText(str4);

				}

			} else {
				isEditing = true;

				_btnEditValue.setText("edit values");

				if (list.get(row) instanceof Square) {
					//TODO change it
					list.get(row).setName(_squarePanel._nameSquare.getText());
					Square actSquare = (Square) list.get(row);
					actSquare.setSideA(Double.parseDouble(_squarePanel._txtSideA.getText()));
					actSquare.setSideB(Double.parseDouble(_squarePanel._txtSideB.getText()));


					tblResults.getModel().setValueAt(actSquare.getName(), row,
							1);
					tblResults.getModel().setValueAt(
							actSquare.getArea() + " cm\u00B2", row, 2);
					tblResults.getModel().setValueAt(
							actSquare.getPerimeter() + " cm", row, 3);

				}

				else if (list.get(row) instanceof Circle) {
					//TODO change it
					list.get(row).setName(_circlePanel._nameCirc.getText());
					Circle actCircle = (Circle) list.get(row);
					actCircle
							.setRadius(Double.parseDouble(_circlePanel._txtRadius.getText()));


					tblResults.getModel().setValueAt(actCircle.getName(), row,
							1);
					tblResults.getModel().setValueAt(
							actCircle.getArea() + " cm\u00B2", row, 2);
					tblResults.getModel().setValueAt(
							actCircle.getPerimeter() + " cm", row, 3);

				}

				else if (list.get(row) instanceof Triangle) {
					//TODO change it
					list.get(row).setName(_trianglePanel._nameTriangle.getText());
					Triangle actTri = (Triangle) list.get(row);
					
					actTri.setSideA(Double.parseDouble(_trianglePanel._txtTriA.getText()));
					actTri.setSideB(Double.parseDouble(_trianglePanel._txtTriB.getText()));
					actTri.setSideC(Double.parseDouble(_trianglePanel._txtTriC.getText()));
					actTri.setHeight(Double.parseDouble(_trianglePanel._txtHeight.getText()));


					tblResults.getModel().setValueAt(actTri.getName(), row, 1);
					tblResults.getModel().setValueAt(
							actTri.getArea() + " cm\u00B2", row, 2);
					tblResults.getModel().setValueAt(
							actTri.getPerimeter() + " cm", row, 3);

				}

			}

		}
	}


	@Override
	public void addGeometric(Geometrics geometrics) 
	{
		list.add(geometrics);

		((DefaultTableModel) tblResults.getModel()).addRow(new Object[] {
				geometrics.getSymbolicLabel(), geometrics.getName(), geometrics.getArea() + " cm\u00B2 ",
				geometrics.getPerimeter() + " cm" });
		
	}		
		
	
}

Geometrics:

Java:
package de.sbsapp.examples.geometriccalculator.model;
public abstract class Geometrics {

	public String name;

	protected Double _area = null;
	protected Double _perimeter = null;

	
	protected Geometrics(String initName)
	{
		setName(initName);
	}
	
	public void setName(String newName) 
	{
		this.name = newName;
	}

	public String getName() 
	{
		return this.name;
	}
	
	protected void resetCalculation()
	{
		_area = null;
		_perimeter = null;
	}
	
	public double getArea()
	{
		if(_area == null) {
			calculateArea();
		}
		return _area;
	}

	public double getPerimeter()
	{
		if(_perimeter == null) {
			calculatePerimeter();
		}
		return _perimeter;
	}
	
	
	abstract public String getSymbolicLabel();
	
	abstract protected void calculateArea();
	
	abstract protected void calculatePerimeter();
}

MySQL:

Java:
package de.Work.Times.Calculator.Handler;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Connection;

public class MySQL {

	public Connection conn = null;
	public Statement statement = null;
	private String userName = "root";
	private String password = "";
	private String url = "jdbc:mysql://localhost:3306/test";

	public MySQL() {

	}

	public void connectToDatabase() throws SQLException {

		try {

			Class.forName("com.mysql.jdbc.Driver").newInstance();
			conn = DriverManager.getConnection(url, userName, password);
			System.out.println("Database connection established.");
		} catch (Exception e) {
			System.out.println("Error" + e);
		}

	}
}

MysqlHandler:

Java:
package de.Work.Times.Calculator.Handler;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;


import de.Work.Times.Calculator.Interface.ExportInterface;
import de.sbsapp.examples.geometriccalculator.model.Geometrics;

public  class MysqlHandler implements ExportInterface {

	@Override
	public void exportGcalculator(List<Geometrics> CalList) throws IOException {

		MySQL sql = new MySQL();
		try {
			sql.connectToDatabase();
			for (Geometrics w : CalList) {
				sql.statement = sql.conn.createStatement();
			
				sql.statement.executeUpdate("insert into times values ('"
						+ w.getSymbolicLabel()+ "','" + w.getName() + "','"
						+ w.getArea() + "','" + w.getPerimeter() + "')");
			}
		} catch (SQLException e) {
			System.out.println("Error while connecting to database" + e);
		}

	}

	@Override
	public void importGcalculator(List<Geometrics> workDayList) throws IOException {
		// TODO Auto-generated method stub

	}

}

Interface:
Java:
package de.Work.Times.Calculator.Interface;

import java.io.IOException;
import java.util.List;

import de.sbsapp.examples.geometriccalculator.model.Geometrics;

public interface ExportInterface {
	
	public void exportGcalculator(List <Geometrics> CalList) throws IOException;
	public void importGcalculator(List <Geometrics> workDayList) throws IOException;

}

TableModel:

Java:
package de.sbsapp.examples.geometriccalculator.jtrainertablemodel;

import java.text.NumberFormat;
import java.util.Vector;

import javax.swing.table.DefaultTableModel;

public class JTrainerTableModel extends DefaultTableModel {

	private static final long serialVersionUID = 1L;
	private final NumberFormat formater;

	private JTrainerTableModel(Vector<String> headerVector, int i) {
		super(headerVector, i);
		formater = NumberFormat.getInstance();
		formater.setMaximumIntegerDigits(2);
	}

	@Override
	public boolean isCellEditable(int row, int col) {
		return false;
	}

}

ListViewHandler :
Java:
package de.sbsapp.examples.geometriccalculator.gui;

import de.sbsapp.examples.geometriccalculator.model.Geometrics;

public interface GeometricCalculatorListViewHandler 
{
	public void addGeometric(Geometrics geometrics);
}

Vielen Dank !
 
Zuletzt bearbeitet:
Du hast da viiiiiel zu viel Code der mit deinem eigentlichen Problem gar nichts zu tun hat.
Beschränke dein Programm doch erstmal nur auf das laden und speichern von Werten aus einer DB Tabelle. Wenn das dann geht kannst du das auf dein Programm übertragen.
 
Ich hab es geschafft, aber ich kriege einen Error:

"Database connection established.
Error while connecting to databasecom.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-P Cal values (' ? ','soma','8.0','12.0')' at line 1"

Mysql Workbench syntax:

CREATE TABLE `A-P Cal`.`values` (
`Symbol` VARCHAR(45) NULL , !! datatype nicht sicher !!
`Name` VARCHAR(45) NULL ,
`Area` DOUBLE NULL ,
`Permeter` DOUBLE NULL ,
PRIMARY KEY (`Name`) );

Kann jemand mir weiter helfen !! ?
Vielen Dank

MysqlHandler :

Java:
package de.sbsapp.examples.geometriccalculator.Handler;

import java.io.IOException;
import java.sql.SQLException;
import java.util.List;


import de.sbsapp.examples.geometriccalculator.Interface.ExportInterface;
import de.sbsapp.examples.geometriccalculator.model.Geometrics;

public  class MysqlHandler implements ExportInterface {

	@Override
	public void exportGcalculator(List<Geometrics> CalList) throws IOException {

		MySQL sql = new MySQL();
		try {
			sql.connectToDatabase();
			for (Geometrics w : CalList) {
				sql.statement = sql.conn.createStatement();
			
				sql.statement.executeUpdate("insert into A-P Cal values ('"
						+ w.getSymbolicLabel()+ "','" + w.getName() + "','"
						+ w.getArea() + "','" + w.getPerimeter() + "')");
			}
		} catch (SQLException e) {
			System.out.println("Error while connecting to database" + e);
		}

	}

	@Override
	public void importGcalculator(List<Geometrics> workDayList) throws IOException {
		// TODO Auto-generated method stub

	}

}

GUI:

Java:
package de.sbsapp.examples.geometriccalculator.gui;

import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.util.ArrayList;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.table.DefaultTableModel;

import de.sbsapp.examples.geometriccalculator.Handler.MysqlHandler;
import de.sbsapp.examples.geometriccalculator.jtrainertablemodel.JTrainerTableModel;
import de.sbsapp.examples.geometriccalculator.model.Circle;
import de.sbsapp.examples.geometriccalculator.model.Geometrics;
import de.sbsapp.examples.geometriccalculator.model.Square;
import de.sbsapp.examples.geometriccalculator.model.Triangle;

public class GUI 
	implements GeometricCalculatorListViewHandler
{
	private JFrame frame;
	private boolean isEditing = true;
	private ArrayList<Geometrics> list = new ArrayList<Geometrics>();
	private JPanel pnlButton;
	private JPanel pnlTable;
	private JPanel pnlExit;
	private JPanel pnlMSQL;
	public JTable tblResults;
	public JTrainerTableModel model;

	
	private CirclePanel _circlePanel;
	private TrianglePanel _trianglePanel;
	private SquarePanel _squarePanel;
	

	// private JTable tblResults;

	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					GUI window = new GUI();
					window.frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	public GUI() {
		initialize();
	}

	private void initialize() {
		frame = new JFrame();
		frame.setBounds(200, 200, 600, 450);
		frame.setTitle("A & P Calculator");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.getContentPane().setLayout(null);

		pnlButton = new JPanel(new GridLayout(1, 3));
		pnlButton.setBounds(50, 20, 500, 50);

		pnlTable = new JPanel();
		pnlTable.setBounds(155, 110, 460, 190);

		pnlExit = new JPanel(new GridLayout(1, 1));
		pnlExit.setBounds(460, 350, 90, 40);
		
		pnlMSQL = new JPanel(new GridLayout(1, 1));
		pnlMSQL.setBounds(250, 350, 120, 40);
		
		JButton btnButtonExit = new JButton("Exit");
		JButton btnButtonCircle = new JButton("Circle");

		JButton btnButtonSquare = new JButton("Square");

		JButton btnButtonTriangle = new JButton("Triangle");
		JButton btnButtonMSQL = new JButton("Save in MSQL");

		final DefaultTableModel model = new DefaultTableModel();

		tblResults = new JTable();
		tblResults.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
		tblResults.setModel(model);
		model.addColumn("Symbol");
		model.addColumn("Name");
		model.addColumn("Area");
		model.addColumn("Perimeter");

		JScrollPane pane = new JScrollPane(tblResults);
		pnlTable.add(pane);

		tblResults.setPreferredScrollableViewportSize(new Dimension(300, 150));
		tblResults.setFillsViewportHeight(true);

		JScrollPane scrollPane = new JScrollPane(tblResults);

		pnlTable.add(scrollPane);
		pnlButton.add(btnButtonSquare);
		pnlButton.add(btnButtonCircle);
		pnlButton.add(btnButtonTriangle);
		pnlExit.add(btnButtonExit);
		pnlMSQL.add(btnButtonMSQL);
		

		// ///////////////////////////////
		// //// TRIANGEL PANEL ///////////////////////////////////////
		// //////////////////////////////

		_trianglePanel = new TrianglePanel(this);
		_trianglePanel.initialize();
		frame.getContentPane().add(_trianglePanel);


		// ///////////////////////////////
		// //// CIRCLE PANEL //////////
		// //////////////////////////////
		_circlePanel = new CirclePanel(this);
		_circlePanel.initialize();
		frame.getContentPane().add(_circlePanel);
		
		
		// ///////////////////////////////
		// //// OTHER PANELS //////////
		// //////////////////////////////
		frame.getContentPane().add(pnlButton);
		frame.getContentPane().add(pnlTable);
		frame.getContentPane().add(pnlExit);
		frame.getContentPane().add(pnlMSQL);
		

		
		
		// ///////////////////////////////
		// //// SQUARE PANEL //////////
		// //////////////////////////////
		_squarePanel = new SquarePanel(this);
		_squarePanel.initialize();
		frame.getContentPane().add(_squarePanel);
		
		
		


		// ///////////////////////////////
		// //// EDIT BUTTON UND EVENT-LISTENER //////////
		// //////////////////////////////

		final JButton btnEditValue = new JButton("edit value");
		btnEditValue.addActionListener(new EditValueAction(btnEditValue));

		
		

		// ///////////////////////////////
		// //// ADD TRIANGLE BUTTON EVENT_HANDLER //////////
		// //////////////////////////////


		btnEditValue.setBounds(265, 306, 117, 29);
		frame.getContentPane().add(btnEditValue);

		// ///////////////////////////////
		// //// DELETE BUTTON EVENT_HANDLER //////////
		// //////////////////////////////

		JButton btnDeleteValue = new JButton("delete value");
		btnDeleteValue.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				int row = tblResults.getSelectedRow();
				DefaultTableModel model = (DefaultTableModel) tblResults
						.getModel();
				model.removeRow(row);
				list.remove(row);

			}
		});
		btnDeleteValue.setBounds(394, 306, 117, 29);
		frame.getContentPane().add(btnDeleteValue);

		// ///////////////////////////////
		// //// PANEL BUTTON EVENT_HANDLER (SQUARE / CIRCLE / TRIANGLE)
		// //////////
		// //////////////////////////////

		btnButtonSquare.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				_circlePanel.setVisible(false);
				_squarePanel.setVisible(true);
				_trianglePanel.setVisible(false);
			}
		});

		btnButtonCircle.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				_circlePanel.setVisible(true);
				_squarePanel.setVisible(false);
				_trianglePanel.setVisible(false);
			}
		});

		btnButtonTriangle.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				_circlePanel.setVisible(false);
				_squarePanel.setVisible(false);
				_trianglePanel.setVisible(true);
			}
		});

		btnButtonExit.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent exit) {
				System.exit(0);

			}

		});
		
		btnButtonMSQL.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				MysqlHandler mysql = new MysqlHandler();
				try {
					mysql.exportGcalculator(list);
				} catch (IOException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
			}
		});

	}
	
	
	class EditValueAction implements ActionListener 
	{
		final JButton _btnEditValue;
		
		
		public EditValueAction(JButton btnEditValue)
		{
			_btnEditValue = btnEditValue;
		}

		@Override
		public void actionPerformed(ActionEvent e) 
		{
			
			
			
			int row = tblResults.getSelectedRow();
			_btnEditValue.setText("save values");

			if (isEditing == true) {
				isEditing = false;

				if (list.get(row) instanceof Square) {
					_squarePanel.setVisible(true);
					_circlePanel.setVisible(false);
					_trianglePanel.setVisible(false);

					//TODO change it 
					_squarePanel._nameSquare.setText(list.get(row).getName());
					Square actSquare = (Square) list.get(row);
					
					//TODO change it
					String str = String.valueOf(actSquare.getSideA());
					_squarePanel._txtSideA.setText(str);

					//TODO change it
					String.valueOf(actSquare.getSideB());
					_squarePanel._txtSideB.setText(str);

				} else if (list.get(row) instanceof Circle) {

					_squarePanel.setVisible(false);
					_circlePanel.setVisible(true);
					_trianglePanel.setVisible(false);

					//TODO change it
					_circlePanel._nameCirc.setText(list.get(row).getName());

					Circle actCircle = (Circle) list.get(row);

					String str = String.valueOf(actCircle.getRadius());
					//TODO change it
					_circlePanel._txtRadius.setText(str);

				} else if (list.get(row) instanceof Triangle) {

					_squarePanel.setVisible(false);
					_circlePanel.setVisible(false);
					_trianglePanel.setVisible(true);

					
					//TODO change it
					_trianglePanel._nameTriangle.setText(list.get(row).getName());

					Triangle actTri = (Triangle) list.get(row);

					String str = String.valueOf(actTri.getSideA());
					//TODO change it
					_trianglePanel._txtTriA.setText(str);

					String str2 = String.valueOf(actTri.getSideB());
					//TODO change it
					_trianglePanel._txtTriB.setText(str2);

					String str3 = String.valueOf(actTri.getSideC());
					//TODO change it
					_trianglePanel._txtTriC.setText(str3);

					String str4 = String.valueOf(actTri.getHeight());
					//TODO change it
					_trianglePanel._txtHeight.setText(str4);

				}

			} else {
				isEditing = true;

				_btnEditValue.setText("edit values");

				if (list.get(row) instanceof Square) {
					//TODO change it
					list.get(row).setName(_squarePanel._nameSquare.getText());
					Square actSquare = (Square) list.get(row);
					actSquare.setSideA(Double.parseDouble(_squarePanel._txtSideA.getText()));
					actSquare.setSideB(Double.parseDouble(_squarePanel._txtSideB.getText()));


					tblResults.getModel().setValueAt(actSquare.getName(), row,
							1);
					tblResults.getModel().setValueAt(
							actSquare.getArea() + " cm\u00B2", row, 2);
					tblResults.getModel().setValueAt(
							actSquare.getPerimeter() + " cm", row, 3);

				}

				else if (list.get(row) instanceof Circle) {
					//TODO change it
					list.get(row).setName(_circlePanel._nameCirc.getText());
					Circle actCircle = (Circle) list.get(row);
					actCircle
							.setRadius(Double.parseDouble(_circlePanel._txtRadius.getText()));


					tblResults.getModel().setValueAt(actCircle.getName(), row,
							1);
					tblResults.getModel().setValueAt(
							actCircle.getArea() + " cm\u00B2", row, 2);
					tblResults.getModel().setValueAt(
							actCircle.getPerimeter() + " cm", row, 3);

				}

				else if (list.get(row) instanceof Triangle) {
					//TODO change it
					list.get(row).setName(_trianglePanel._nameTriangle.getText());
					Triangle actTri = (Triangle) list.get(row);
					
					actTri.setSideA(Double.parseDouble(_trianglePanel._txtTriA.getText()));
					actTri.setSideB(Double.parseDouble(_trianglePanel._txtTriB.getText()));
					actTri.setSideC(Double.parseDouble(_trianglePanel._txtTriC.getText()));
					actTri.setHeight(Double.parseDouble(_trianglePanel._txtHeight.getText()));


					tblResults.getModel().setValueAt(actTri.getName(), row, 1);
					tblResults.getModel().setValueAt(
							actTri.getArea() + " cm\u00B2", row, 2);
					tblResults.getModel().setValueAt(
							actTri.getPerimeter() + " cm", row, 3);

				}

			}

		}
	}


	@Override
	public void addGeometric(Geometrics geometrics) 
	{
		list.add(geometrics);

		((DefaultTableModel) tblResults.getModel()).addRow(new Object[] {
				geometrics.getSymbolicLabel(), geometrics.getName(), geometrics.getArea() + " cm\u00B2 ",
				geometrics.getPerimeter() + " cm" });
		
	}		
		
	
}


Vielen Dank!
 
[STRIKE]A-P Cal <-- das ist kein gültiger Tabellenname.[/STRIKE]

EDIT:
Java:
insert into A-P Cal values
Da stimmt die Syntax nicht. Falls du Sonder-/Leerzeichen im DB-Namen oder Tabellennamen verwendest musst du die ` ` drumherum setzen. Verzichte da aber am besten komplett drauf.
 
Zuletzt bearbeitet von einem Moderator:
Mysql Workbench syntax:

CREATE TABLE `APCal`.`APCalvalues` (
`Symbol` VARCHAR(45) NULL , !! datatype nicht sicher !!
`Name` VARCHAR(45) NULL ,
`Area` DOUBLE NULL ,
`Permeter` DOUBLE NULL ,
PRIMARY KEY (`Name`) );

APCal = Schema Name
APCalvalues = Table Name

Ich hab die Name geändert, aber immer noch den gleichen Error !!

Danke Dir !!

"Database connection established.
Error while connecting to databasecom.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'APCalvalues (' ? ','Name','6.0','10.0')' at line 1"

Java:
package de.sbsapp.examples.geometriccalculator.Handler;

import java.io.IOException;
import java.sql.SQLException;
import java.util.List;


import de.sbsapp.examples.geometriccalculator.Interface.ExportInterface;
import de.sbsapp.examples.geometriccalculator.model.Geometrics;

public  class MysqlHandler implements ExportInterface {

	@Override
	public void exportGcalculator(List<Geometrics> CalList) throws IOException {

		MySQL sql = new MySQL();
		try {
			sql.connectToDatabase();
			for (Geometrics w : CalList) {
				sql.statement = sql.conn.createStatement();
			
				sql.statement.executeUpdate("insert into APCal APCalvalues ('"
						+ w.getSymbolicLabel()+ "','" + w.getName() + "','"
						+ w.getArea() + "','" + w.getPerimeter() + "')");
			}
		} catch (SQLException e) {
			System.out.println("Error while connecting to database" + e);
		}

	}

	@Override
	public void importGcalculator(List<Geometrics> workDayList) throws IOException {
		// TODO Auto-generated method stub

	}

}

Java:
package de.sbsapp.examples.geometriccalculator.Handler;

import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Connection;

public class MySQL {

	public Connection conn = null;
	public Statement statement = null;
	private String userName = "root";
	private String password = "";
	private String url = "jdbc:mysql://localhost:3306/APCal";

	public MySQL() {

	}

	public void connectToDatabase() throws SQLException {

		try {

			Class.forName("com.mysql.jdbc.Driver").newInstance();
			conn = DriverManager.getConnection(url, userName, password);
			System.out.println("Database connection established.");
		} catch (Exception e) {
			System.out.println("Error" + e);
		}

	}
}
 

Zurück
Oben