pues ahora que me fijo bien estas haciendo mal uso de la Programacion orientada a objetos ..
yo te recomiendo que lo hagas de esta manera :
la clase GuardarDatos debe ser asi
Código:
mport java.sql.*;
import javax.swing.*;
public class GuardarDatos {
private Connection con;
private int codigo;
private String nombre;
private String car;
private int semestre;
public int getCodigo() {
return codigo;
}
public void setCodigo(int codigo) {
this.codigo = codigo;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getCar() {
return car;
}
public void setCar(String car) {
this.car = car;
}
public int getSemestre() {
return semestre;
}
public void setSemestre(int semestre) {
this.semestre = semestre;
}
private void guardaNotas(){
try {
con = getConexion();
if(con!=null){
try{
PreparedStatement presta = con.prepareStatement("INSERT INTO datos values(?,?,?,?);");
presta.setInt(1,codigo);
presta.setString(2,nombre);
presta.setString(3,car);
presta.setInt(4,semestre);
con.setAutoCommit(true);
presta.execute();
presta.close();
}
catch (Exception e) {
// TODO: handle exception
}
finally{
con.close();
}
}else{
JOptionPane.showMessageDialog(null,"No hay conexion");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private Connection getConexion() throws SQLException{
String dri = "com.ms.jdbc.odbc.JdbcOdbcDriver";
String url = "jdbc:odbc:Estudiantes";
try{
Class.forName(dri);
con = DriverManager.getConnection(url);
}
catch(ClassNotFoundException e){
JOptionPane.showMessageDialog(null,"No se encuentra el driver");
}
return con;
}
}
y finalmente al llamarlo desde la otra clase debes hacerlo de la siguiente manera :
Código:
GuardarDatos gua = new GuardarDatos();
gua.setCodigo(cod);
gua.setNombre(nom);
gua.setCar(car);
gua.setSemestre(sem);
gua.guardarNotas();