Sql inserção de Dados

Olá a todos!!
Estou com um problema no minha inserção de dados, o código executa normal, quando vou inserir dados no Frame e gravar ele da erro, mas não mostra onde esta o erro.
Se puderem me ajudar, sou novato em Java, estou usando o Mysql Workbench 5.6 SE

Desde já agradeço a atenção de todos que vierem a ler este topico.

[code]

package Dados;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Observable;

public class Registro extends Observable {

String cor;
String marca;
String Placa;
String modelo;
String AnoFab;
String Categoria;
String ID;
String Dados;
public String [] op;
public Object lista;
private Object moto;
private Object jScrollPane;
public static ResultSet rs;

private static Connection conn;
private static Statement stmt;

public String [] getop() {
return op;
}
public void setop(String[] op) {
this.op = op;
}

public String getCor() {
	return cor;
}
public void setCor(String cor) {
	this.cor = cor;
}
public String getMarca() {
	return marca;
}
public void setMarca(String marca) {
	this.marca = marca;
}
public String getModelo() {
	return modelo;
}
public void setModelo(String modelo) {
	this.modelo = modelo;
}
public String getAnoFab() {
	return AnoFab;
}
public void setAnoFab(String string) {
	this.AnoFab = string;
}

public String getCategoria() {
	return Categoria;
}
public void setCategoria(String Categoria) {
	this.Categoria = Categoria;
}


public String getID() {
	return ID;
}
public void setID(String ID) {
	this.ID = ID;
}

public String getDados() {
	return Dados;
}

public void setDados(String Dados) {
	this.Dados = Dados;
}


public  void inserir() throws SQLException {
	
	SQL dao = new SQL();
	dao.inserir(ID,modelo,marca,cor,AnoFab,Categoria);
	

}





public void buscar() throws Exception {
	SQL dao = new SQL();
	
	dao.buscar(ID);
	SQL.carregadados(this);


}

public void alterar() throws Exception {
	SQL dao = new SQL();
	
	dao.altera(ID,modelo,marca,cor,AnoFab,Categoria);

	
}

public void excluir() throws Exception {
	SQL dao = new SQL();
	dao.excluir(ID);

}

public ArrayList mostra() throws Exception{

String comando  = "select * from moto";

    
	conn = SQL.conectar();
	stmt = conn.createStatement();
	ResultSet rs = stmt.executeQuery(comando);
	ArrayList<Registro> lista = new ArrayList<Registro>();
	
	
while (rs.next()) {			
	Registro registro1 = new Registro();
	registro1.setID(rs.getString("id"));
	registro1.setModelo(rs.getString("placa"));
	registro1.setModelo(rs.getString("modelo"));
	registro1.setMarca(rs.getString("marca"));
	registro1.setCor(rs.getString("cor"));
	registro1.setAnoFab(rs.getString("AnoFab"));
	registro1.setCategoria(rs.getString("Categoria"));
	
	
	lista.add(registro1);

}


return lista;

}

}

package Dados;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.sql.PreparedStatement;
import java.sql.ResultSetMetaData;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;

import javax.swing.JOptionPane;

public class SQL {

public static Connection conn;
private static Statement stmt;
private static ResultSet busca;
private static ResultSet rsDados;
static Registro reg = new Registro();
final String sqlCriar ="insert into moto (placa, modelo,marca,AnoFab,cor,categoria) values (?,?,?,?,?,?)";

public static void main(String[] args) {
	conectar();

}

public static Connection conectar() {

	try {
		Class.forName("com.mysql.jdbc.Driver");
		String url = "jdbc:mysql://localhost:3306/test?";
		String usuario = "root";
		String senha = "12345";
		conn = DriverManager.getConnection(url, usuario, senha);

	} catch (ClassNotFoundException e) {

		System.err.println("Nao conectou o driver no banco.Erro de Driver");
	}

	catch (SQLException e) {

		System.err.println("Erro ao conectar.Erro sql" + e.getMessage());
	}
	

			
	return conn;

}
public void desconectar() {

	try {
		conn.close();
	} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
}
public void altera(String ID, String modelo, String marca, String cor,
		String AnoFab, String Categoria) throws Exception {
	conectar();
	try {
		stmt = conn.createStatement();
		stmt.executeUpdate(("update moto set id=" + "'" + ID
				+ "',modelo=" + "'" + modelo + "'," + "marca=" + "'"
				+ marca + "',cor=" + "'" + cor + "'," + "anoFab=" + "'"
				+ AnoFab + "',categoria=" + "'" + Categoria + "'where id='"
				+ ID + "'"));

		JOptionPane.showMessageDialog(null,
				"Alterações feitas com sucesso!", "Aviso!",
				JOptionPane.INFORMATION_MESSAGE);
	} catch (SQLException e) {
		JOptionPane.showMessageDialog(null,
				"Error Ao Gravar as Alterações!", "Error!",
				JOptionPane.INFORMATION_MESSAGE);

	}
}

// =========================================================================================================
public void inserir(String placa, String modelo, String marca, String cor,
		String AnoFab, String Categoria)  {
	conn = conectar();

	try {
		
		stmt = conn.createStatement();
		stmt.executeUpdate("insert into moto (placa, modelo,marca,AnoFab,cor,categoria) values (?,?,?,?,?,?)");
		
		//stmt.executeUpdate(("insert into  moto values('"  + id
			//	+ "',modelo=" + "'" + modelo + "'," + "marca=" + "'"
				//+ marca + "',cor=" + "'" + cor + "'," + "anoFab=" + "'"
				//+ AnoFab + "',categoria=" + "'" + Categoria + ""
				//+ "'"));
		
		System.out.println("insert into moto values('" + placa + "','"
				+ modelo + "','" + marca + "','" + cor + "','" + AnoFab
				+ "','" + Categoria + "');");
		
		//stmt.executeUpdate("insert into moto values('" + placa + "','"
			//	+ modelo + "','" + marca + "','" + cor + "','" + AnoFab
				//+ "','" + Categoria +"");

		JOptionPane.showMessageDialog(null,
				"Moto Cadastrada!", "Aviso!",
				JOptionPane.INFORMATION_MESSAGE);

	} catch (SQLException e) {
		JOptionPane
				.showMessageDialog(
						null,
						"Error Ao Gravar!",
						"Error!", JOptionPane.INFORMATION_MESSAGE);

	}
}

// =======================================================================================

// ==============================================================================
public static void carregadados(Registro registro) throws SQLException {

	try {

	

		registro.setID(rsDados.getString("id"));
		registro.setModelo(rsDados.getString("Placa"));
		registro.setModelo(rsDados.getString("modelo"));
		registro.setMarca(rsDados.getString("marca"));
		registro.setCor(rsDados.getString("cor"));
		registro.setAnoFab(rsDados.getString("anoFab"));
		registro.setCategoria(rsDados.getString("categoria"));
	}
 catch (Exception e) {
 }
 }

// ======================================================================================
public ResultSet buscar(String ID) throws Exception {

	conectar();
	try {
		stmt = conn.createStatement();
		rsDados = stmt
				.executeQuery("select * from moto where id like '"
						+ ID + "'");

		rsDados.next();
		reg.setID(rsDados.getString("id"));
		reg.setModelo(rsDados.getString("Placa"));
		reg.setModelo(rsDados.getString("modelo"));
		reg.setMarca(rsDados.getString("marca"));
		reg.setCor(rsDados.getString("cor"));
		reg.setAnoFab(rsDados.getString("anoFab"));
		reg.setCategoria(rsDados.getString("categoria"));

	} catch (SQLException e) {

		JOptionPane.showMessageDialog(null,
				" não encontrado, Verefique os Dados Informados!",
				"Error!", JOptionPane.INFORMATION_MESSAGE);

	}

	return busca;

}

// ========================================================================================
public ResultSet buscar2;
{

	conectar();
	try {
		stmt = conn.createStatement();
		ResultSet rs = stmt.executeQuery(" select * from moto ");

	} catch (SQLException e) {

		JOptionPane.showMessageDialog(null,
				"não encontrado, Verefique os Dados Informados!",
				"Error!", JOptionPane.INFORMATION_MESSAGE);

	}

}

// ========================================================================================

public void excluir(String ID) throws Exception {

	conectar();
	try {
		stmt = conn.createStatement();
		stmt.executeUpdate("delete from moto where id='" + ID + "'");
		JOptionPane.showMessageDialog(null,
				"excluido com sucesso!", "Aviso!",
				JOptionPane.INFORMATION_MESSAGE);

	} catch (SQLException e) {

		JOptionPane.showMessageDialog(null,
				"Exclusão não pode ser feita.!!!!", "Error!",
				JOptionPane.INFORMATION_MESSAGE);

	}

}

public static void carregaBusca1(Registro registro) throws SQLException {

	ArrayList lista = new ArrayList();

	String comando = "select * from moto";

	conectar();
	java.sql.Statement stmt = conn.createStatement();
	ResultSet rs = stmt.executeQuery(comando);

	while (rs.next()) {
		Registro registro1 = new Registro();
		registro1.setID(rs.getString("id"));
		registro.setModelo(rs.getString("Placa"));
		registro1.setModelo(rs.getString("modelo"));
		registro1.setMarca(rs.getString("marca"));
		registro1.setCor(rs.getString("cor"));
		registro1.setAnoFab(rs.getString("AnoFab"));
		registro1.setCategoria(rs.getString("Categoria"));

		lista.add(registro1);// adicionando no array

	}
	return;
}

}

package Tela;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.SQLException;
import java.util.ArrayList;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;

import Dados.Registro;

public class Layout extends javax.swing.JFrame {

public static final long serialVersionUID = 1L;
public static String[] colunas = {"Placa","Modelo","Marca","Cor","AnoFab",""};
public static String dados[][] = null;

public static JTable table = null;

public JLabel JTitulo;
public JLabel JMarca;
public JLabel jLabel2;
public JLabel jLabel3;
public JButton JBPesquisar;
public JButton JBTodos;
public JButton JBExcluir;
public JButton JBNovo;
public static JScrollPane jScrollPane1;
public JButton JBAlterar;
public JLabel jLabel5;
public JTextField JTID;
public JLabel jLabel4;
public JButton JBSalvar;
public JButton JBCancelar;
public JTextField JTCategoria;
public JTextField JTAnoFab;
public JTextField JTCor;
public JTextField JTMarca;
public JTextField JTModelo;
public JLabel jLabel1;
public JLabel JModelo;
Registro reg = new Registro();


public static void main(String[] args) {
	
	SwingUtilities.invokeLater(new Runnable() {
		
		
		public void run() {
			Layout inst = new Layout();
			inst.setLocationRelativeTo(null);
			inst.setVisible(true);
		}
	});
}


public Layout() {
	super("");
	initGUI();
}



public JTable impritodos (){
	
			
		
	    ArrayList<Registro> lista = null;
		try {
			lista = reg.mostra(); 
		} catch (Exception e) {
			
			e.printStackTrace();
		}
		

		
		dados = new String[lista.size()][6]; 
		
		
		for(int i=0; i<lista.size(); i++){
			
			 dados[i][0]=lista.get(i).getID();          
			 dados[i][1]=lista.get(i).getModelo();      
			 dados[i][2]=lista.get(i).getMarca();       
			 dados[i][3]=lista.get(i).getCor();         
			 dados[i][4]=lista.get(i).getAnoFab();      
			 dados[i][5]=lista.get(i).getCategoria();
			
		}
	
		
		return table = new JTable (dados, colunas);
}


private void initGUI() {
	try {
		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
		getContentPane().setLayout(null);
		{
			JTitulo = new JLabel();
			getContentPane().add(JTitulo);
			JTitulo.setText("Cadastro de Motos ");
			JTitulo.setBounds(27, 12, 394, 22);
			JTitulo.setFont(new java.awt.Font("Segoe UI",1,24));
		}
		{
			JModelo = new JLabel();
			getContentPane().add(JModelo);
			JModelo.setText("Modelo :");
			JModelo.setBounds(27, 107, 108, 16);
		}
		{
			JMarca = new JLabel();
			getContentPane().add(JMarca);
			JMarca.setText("Marca :");
			JMarca.setBounds(27, 135, 107, 16);
		}
		{
			jLabel1 = new JLabel();
			getContentPane().add(jLabel1);
			jLabel1.setText("Cor :");
			jLabel1.setBounds(27, 168, 107, 16);
		}
		{
			jLabel2 = new JLabel();
			getContentPane().add(jLabel2);
			jLabel2.setText("Ano de Fabricação : ");
			jLabel2.setBounds(27, 201, 133, 16);
		}
		{
			jLabel3 = new JLabel();
			getContentPane().add(jLabel3);
			jLabel3.setText("Categoria : ");
			jLabel3.setBounds(27, 236, 107, 16);
		}
		{
			JTModelo = new JTextField();
			getContentPane().add(JTModelo);
			JTModelo.setBounds(167, 104, 269, 23);
		}
		{
			JTMarca = new JTextField();
			getContentPane().add(JTMarca);
			JTMarca.setBounds(167, 132, 269, 23);
		}
		{
			JTCor = new JTextField();
			getContentPane().add(JTCor);
			JTCor.setBounds(167, 165, 269, 23);
		}
		{
			JTAnoFab = new JTextField();
			getContentPane().add(JTAnoFab);
			JTAnoFab.setBounds(166, 198, 270, 23);
		}
		{
			JTCategoria = new JTextField();
			getContentPane().add(JTCategoria);
			JTCategoria.setBounds(166, 233, 270, 23);
		}
		{
			
			JBCancelar = new JButton();
			getContentPane().add(JBCancelar);
			JBCancelar.setText("Cancelar");
			JBCancelar.setBounds(306, 403, 130, 23);
			JBCancelar.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent evt) {
					
					JTID.setText("");
					JTModelo.setText("");	 
					JTMarca.setText("");
					JTCor.setText("");
					JTAnoFab.setText("");
					JTCategoria.setText("");
					JTID.requestFocus();
					
				}
			});
		}
		{
			
			JBSalvar = new JButton();
			getContentPane().add(JBSalvar);
			JBSalvar.setText("Salvar");
			JBSalvar.setBounds(36, 403, 130, 23);
			
			JBSalvar.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent arg0) {

				reg.setID(JTID.getText());
                reg.setModelo(JTModelo.getText());
				reg.setMarca(JTMarca.getText());
				reg.setCor(JTCor.getText());
				reg.setAnoFab(JTAnoFab.getText());
				reg.setCategoria(JTCategoria.getText());

				
				
				JTID.setText("");	
				JTModelo.setText("");	 
				JTMarca.setText("");
				JTCor.setText("");
				JTAnoFab.setText("");
				JTCategoria.setText("");
				JTID.requestFocus();
									
				
			
					try {
											
						reg.inserir();
						impritodos();
						
				
					} catch (SQLException e) {
						
						e.printStackTrace();
					}
             
				
				}
			
			});
		}
		{
			JBPesquisar = new JButton();
			getContentPane().add(JBPesquisar);
			JBPesquisar.setText("Buscar");
			JBPesquisar.setBounds(171, 369, 130, 23);
			JBPesquisar.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent evt) {
					
					
					reg.setID(JTID.getText());
					
					try {
						reg.buscar();
						JTID.setText(reg.getID());
						JTModelo.setText(reg.getModelo());
						JTMarca.setText(reg.getMarca());
						JTCor.setText(reg.getCor());
						JTAnoFab.setText(reg.getAnoFab());
						JTCategoria.setText(reg.getCategoria());
						JBAlterar.setEnabled(true);
						JBSalvar.setEnabled(false);
						JBExcluir.setEnabled(true);
						
					} catch (SQLException e) {
						
						e.printStackTrace();
					} catch (Exception e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
			});
		}
		{
			jLabel4 = new JLabel();
			getContentPane().add(jLabel4);
			jLabel4.setText("");
			jLabel4.setBounds(27, 40, 327, 16);
		}
		{
			jLabel5 = new JLabel();
			getContentPane().add(jLabel5);
			jLabel5.setText("Placa : ");
			jLabel5.setBounds(27, 80, 128, 16);
		}
		{
			JTID = new JTextField();
			getContentPane().add(JTID);
			JTID.setBounds(167, 77, 269, 23);
		}
		{
			JBAlterar = new JButton();
			getContentPane().add(JBAlterar);
			JBAlterar.setText("Alterar");
			JBAlterar.setEnabled(false);
			JBAlterar.setBounds(171, 403, 130, 23);
			JBAlterar.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent evt) {
				    	
						reg.setID(JTID.getText()); 
				    	reg.setModelo(JTModelo.getText());
						reg.setMarca(JTMarca.getText());
						reg.setCor(JTCor.getText());
						reg.setAnoFab(JTAnoFab.getText());
						reg.setCategoria(JTCategoria.getText());
						
						JTID.setText("");
						JTModelo.setText("");	 
						JTMarca.setText("");
						JTCor.setText("");
						JTAnoFab.setText("");
						JTCategoria.setText("");
						JTID.requestFocus();
						
						
						
							try {
													
								reg.alterar();
								impritodos();
							} catch (SQLException e) {
								
								e.printStackTrace();
							} catch (Exception e) {
								e.printStackTrace();
							}
				}
			});
		}
		{
			JBNovo = new JButton();
			getContentPane().add(JBNovo);
			JBNovo.setText("Novo ");
			JBNovo.setBounds(36, 369, 130, 23);
			JBNovo.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent evt) {
					
					JTID.setText("");
					JTModelo.setText("");	 
					JTMarca.setText("");
					JTCor.setText("");
					JTAnoFab.setText("");
					JTCategoria.setText("");
					JTID.requestFocus();
					JBSalvar.setEnabled(true);
					JBAlterar.setEnabled(false);
					JBExcluir.setEnabled(false);
					
				}
			});
		}
		{
			
			JBExcluir = new JButton();
			getContentPane().add(JBExcluir);
			JBExcluir.setText("Excluir");
			JBExcluir.setBounds(306, 369, 130, 23);
			JBExcluir.setEnabled(false);
			JBExcluir.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent evt) {
					
					reg.setID(JTID.getText());
					
					try {
						
						reg.excluir();
						JBExcluir.setEnabled(false);
						JTModelo.setText("");	 
						JTMarca.setText("");
						JTCor.setText("");
						JTAnoFab.setText("");
						JTCategoria.setText("");
						JTID.setText("");
						JTID.requestFocus();
						impritodos();
						
					} catch (SQLException e) {
						
						e.printStackTrace();
					} catch (Exception e) {
						e.printStackTrace();
					}
				}
			});
		}
		
		{
			JBTodos = new JButton();
			getContentPane().add(JBTodos);
			JBTodos.setText("Buscar Todos");
			JBTodos.setBounds(820, 37, 144, 23);
			JBTodos.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent evt) {
				
					JTable tabelaRelatorio = new JTable(); 
					tabelaRelatorio = impritodos(); 
					tabelaRelatorio.setBounds(504, 71, 470, 365); 
					tabelaRelatorio.getTableHeader().setReorderingAllowed(false);
					jScrollPane1 = new JScrollPane(tabelaRelatorio); 
				
					jScrollPane1.setBounds(508, 77, 462, 349); 
					getContentPane().add(jScrollPane1); 
			
				}
			});
		}
		{
			
		}

		this.setSize(1024, 484);

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

}[/code]

caramba, que código!

acho que você deveria estudar mais a teoria:
Encapsulamento
Desenvolvimento em Camadas
MVC
DAO
Acoplamento e Coesão.

para resolver teu problema posta o o trecho do código que está dando o erro e o stacktrace do console.

Caramba!

Bem. O problema está no método de inserção:

[code]public class SQL {
// …

// Aqui você recebe os parâmetros
public void inserir(String placa, String modelo, String marca, String cor,  
        String AnoFab, String Categoria)  {
    conn = conectar();  

    try {  
          
        stmt = conn.createStatement();
        // E já que usou Statement em vez de PreparedStatement, aqui você deveria concatenar os parâmetros à String em vez de colocar "?"
        stmt.executeUpdate("insert into moto (placa, modelo,marca,AnoFab,cor,categoria) values (?,?,?,?,?,?)"); 

        // Quase isso
        //stmt.executeUpdate(("insert into  moto values('"  + id  
            //  + "',modelo=" + "'" + modelo + "'," + "marca=" + "'"  
                //+ marca + "',cor=" + "'" + cor + "'," + "anoFab=" + "'"  
                //+ AnoFab + "',categoria=" + "'" + Categoria + ""  
                //+ "'"));  

        // Quase isso
        //stmt.executeUpdate("insert into moto values('" + placa + "','"  
            //  + modelo + "','" + marca + "','" + cor + "','" + AnoFab  
                //+ "','" + Categoria +"");  

        // Se id for do tipo auto-incremento, talvez assim funcione. Disse talvez porque não tenho como testar
        // stmt.executeUpdate("insert into moto (placa, modelo,marca,AnoFab,cor,categoria) values ('" + placa + "','" + modelo + "','" + marca + "','" + cor + "','" + AnoFab + "','" + categoria + "'");

        JOptionPane.showMessageDialog(null,  
                "Moto Cadastrada!", "Aviso!",  
                JOptionPane.INFORMATION_MESSAGE);  

    } catch (SQLException e) {
        JOptionPane  
                .showMessageDialog(  
                        null,  
                        "Error Ao Gravar!",  
                        "Error!", JOptionPane.INFORMATION_MESSAGE);  
        // Nunca esconda a stackTrace. Se não quer exibi-lá ao usuário, você pode usar um Logger.
        e.printStackTrace();  
    }  
}
// ...

}[/code]
Você recebe os parâmetros mas não passa ele para a execução do Steatment.

Para entender como a JDBC funciona e como usá-la de uma forma melhor, leia o Capitulo 2: Bancos de dados e JDBC da Apostila do curso FJ-21: Java para Desenvolvimento Web da Caelum

não prestei atenção nos detalhes do código.
deu dor de cabeça.

percebi que os dados são transportados pela aplicação, não há objetos de negócio!

Este é o desenvolvimento: de trás para frente! primeiro você desenvolve, depois aprende!

adicione na lista de estudos:
OO
JAVA API
JDBC