style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

problema con la insercion a la BD

Hola a todos tengo una clase que es un formulario de inserción de datos, la idea es que este formulario por medio de un botón me envié los datos y me los inserte en una base de datos. Por ende tengo la clase de inserción en la base de datos MySQL. esta clase si la ejecuto me inserta perfectamente pero ahora deseo llamarla en el formulario para que por medio del boton me inserte los valores que le doy en el formulario al ejecutarlo.
Dejo los codigos de las dos clases para tener una mejor ayuda

import java.awt.Color;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import java.sql.*;
import java.util.Hashtable;

public class formulario{

private double nota;
private int in=0;
private int cll=0;
private int clw=0;
private String imprimir="";
private Statement stm;

public formulario(){
JFrame frame= new JFrame("Estadisticas Saber Pro");

Panel panel=new Panel();
panel.setLayout(null);
panel.setBounds(0,0,450,750);
panel.setBackground(Color.GRAY);

frame.setSize(450, 750);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);

Label txidalum=new Label("ID Alumno");
txidalum.setBounds(50, 60, 100, 20);

final TextField idalum=new TextField("");
idalum.setBounds(250, 60, 100, 20);

Label txcarrera=new Label("Carrera");
txcarrera.setBounds(50, 120, 100, 20);

final Choice carrera=new Choice();
carrera.add("");
carrera.add("Tecnica");
carrera.add("Tecnologica");
carrera.setBounds(250,120, 100,20);

Label txfacultad=new Label("Facultad");
txfacultad.setBounds(50, 180, 100, 20);

final Choice facultad=new Choice();
facultad.add("");
facultad.add("Ingenierias");
facultad.add("NTIC");
facultad.setBounds(250,180, 100,20);

Label txcompon=new Label("Componentes");
txcompon.setBounds(50, 240, 100, 20);

final Choice compon=new Choice();
compon.add("");
compon.add("Basicos");
compon.add("Social");
compon.add("Programacion");
compon.add("Matematicas");
compon.setBounds(250,240, 100,20);

Label txpunta=new Label("Puntaje");
txpunta.setBounds(50, 300, 100, 20);

final TextField punta=new TextField("");
punta.setBounds(250, 300, 100, 20);

JButton enviar=new JButton("Calcular");
enviar.setBounds(50, 340, 100, 50);

JButton borrar=new JButton("Cancelar");
borrar.setActionCommand("salir");
borrar.setBounds(250, 340, 100, 50);

JButton ins=new JButton("Insertar");
ins.setBounds(50, 520, 100, 50);

Label txlost=new Label("Debilidad");
txlost.setBounds(50, 420, 100, 20);

final TextField lost=new TextField("0");
lost.setBounds(250, 420, 100, 20);

Label txwin=new Label("Fortaleza");
txwin.setBounds(50, 480, 100, 20);

final TextField win=new TextField("0");
win.setBounds(250, 480, 100, 20);

panel.add(txidalum);
panel.add(idalum);
panel.add(txcarrera);
panel.add(carrera);
panel.add(txfacultad);
panel.add(facultad);
panel.add(txcompon);
panel.add(compon);
panel.add(txpunta);
panel.add(punta);
panel.add(txlost);
panel.add(lost);
panel.add(txwin);
panel.add(win);
panel.add(enviar);
panel.add(borrar);
panel.add(ins);
frame.add(panel);

frame.setVisible(true);

frame.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent we){
System.exit(0);
}
}
);

enviar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
in=in+1;

//nota= Integer.parseInt(cali.getText());
nota=Double.parseDouble(punta.getText());
JOptionPane.showMessageDialog(null,"ID Alumno "+idalum.getText() +"\n\n"+"Carrera "+carrera.getSelectedItem()+"\n\n"+"Facultad "+facultad.getSelectedItem()+"\n\n"+"Componentes "+compon.getSelectedItem());

if(0.95.1){

JOptionPane.showMessageDialog(null,"Nota incorrecta");
}
}
}
);

borrar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if(e.getActionCommand().equals("salir")){
System.exit(0);
}
}
}
);
// este botón es el que me debería hacer la inserción.
ins.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JOptionPane.showMessageDialog(null,"intentando registrar");
DBInsertar objeto = new DBInsertar();
JOptionPane.showMessageDialog(null,"Registro Insertado");
}
}
);
}

}

y la clase de inserción es esta.

import java.sql.*;

public class DBInsertar
{
static String bd = "xxxxx";
static String login = "xxxxx";
static String password = "xxxxx";
static String url = "jdbc:mysql://localhost/"+bd;

//DBInsertar()
public static void main(String[] args) throws Exception
{
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection(url,login,password);
if (conn != null)
{
int rows_updated = 0;
PreparedStatement stmt1 = conn.prepareStatement("INSERT INTO saberf (idalum, carrera, facultad, compon, punta) "
+ "VALUES (?,?,?,?,?)");

stmt1.setInt(1,3);
stmt1.setString(2,"Ing Sistemas");
stmt1.setString(3,"Nuevas tecnologias");
stmt1.setString(4,"Basico");
stmt1.setInt(5,4);

rows_updated = stmt1.executeUpdate();

}
}
catch(SQLException ex) {
System.out.println(ex);
}
catch(ClassNotFoundException ex) {
System.out.println(ex); }
}
}

Por favor espero sus apuntes gracias!!!

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Tip

primero en tu clase DBinsertar cambia esta parte y meterlo dentro de un metodo

PreparedStatement stmt1 = conn.prepareStatement("INSERT INTO saberf (idalum, carrera, facultad, compon, punta) "
+ "VALUES (?,?,?,?,?)");

stmt1.setInt(1,3);
stmt1.setString(2,"Ing Sistemas");
stmt1.setString(3,"Nuevas tecnologias");
stmt1.setString(4,"Basico");
stmt1.setInt(5,4);

rows_updated = stmt1.executeUpdate();

algo mas menos asi

public int insertar(id,carrera,facultad,compon,punta){
}
PreparedStatement stmt1 = conn.prepareStatement("INSERT INTO saberf (idalum, carrera, facultad, compon, punta) "
+ "VALUES (?,?,?,?,?)");

stmt1.setInt(1,id);
stmt1.setString(2,carrera);
stmt1.setString(3,facultad);
stmt1.setString(4,compon);
stmt1.setInt(5,punta);

rows_updated = stmt1.executeUpdate();

y en tu codigo de swing

donde tienes

ins.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JOptionPane.showMessageDialog(null,"intentando registrar");
DBInsertar objeto = new DBInsertar();
JOptionPane.showMessageDialog(null,"Registro Insertado");
}
}
);

igual mas menos

ins.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JOptionPane.showMessageDialog(null,"intentando registrar");
DBInsertar objeto = new DBInsertar();

//aqui debes recuperar los datos que vas a insertar de tus JTextField
objeto.insertar(int id,String carrera,String facultad,String compon,int punta)
JOptionPane.showMessageDialog(null,"Registro Insertado");
}
}
);

Imagen de neko069

Comentario

Puedes separar mejor tus acciones para darles un fácil seguimiento, aquí mismo ya se ha hablado de ello, checa éste link espero te sirva...

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">