Я провел несколько тестов, значения представлений сохраняются в модели, но не передаются в базу данных. Значения, введенные на экране, отлично распечатываются консолью, но на момент ввода в базу данных они не заполнены, и я не смог определить ошибку.
Класс DAO.
public class ProyectoDAO {
ConexionSQL conectar = new ConexionSQL();
Connection con;
PreparedStatement ps;
ResultSet rs;
public int insert(Proyecto p) {
String sql = "INSERT INTO proyecto (name, status, duration, advance) VALUES (?,?,?,?)";
try {
con = conectar.getConexionSQL();
ps=con.prepareStatement(sql);
ps.setString(2, p.getNombre());
//ps.setString(2, "Test");
ps.setInt(3, p.getStatus());
ps.setInt(5, p.getDuracion());
ps.setInt(6, p.getAvance());
int registro = ps.executeUpdate();
return 1;
} catch(Exception e){
}
return 0;
}
}
Контроллер Proyecto
public class Cproyecto extends ConexionSQL {
Proyecto p = new Proyecto();
Vproyecto vp = new Vproyecto();
Version ver = new Version();
Connection con = getConexionSQL();
ProyectoDAO pdao = new ProyectoDAO();
VersionDAO vdao = new VersionDAO();
public Cproyecto(Proyecto p) {
super();
this.vp.addRegistrarListener(new guardarValor());
this.vp.addActualizarListener(new actualizarValor());
this.vp.addBuscarListener(new buscarValor());
}
public void initProyecto() {
vp.setVisible(true);
vp.textID.setText(String.valueOf(p.getCod())); //Esto debe aparecer al abrir Registrar
}
// Register
class guardarValor implements ActionListener {
public void actionPerformed(ActionEvent e) {
try {
if (vp.textNombre.getText().isEmpty() || vp.textVersion.getText().isEmpty() || vp.textAvance.getText().isEmpty())
JOptionPane.showMessageDialog(null, "Debe rellenar todos los campos");
else {
//Save values
p.setNombre(vp.textNombre.getText());
p.setStatus(vp.comboEstado.getSelectedIndex());
p.setDuracion(vp.comboDuracion.getSelectedIndex());
p.setAvance(Integer.valueOf(vp.textAvance.getText()));
ver.setNameVersion(vp.textVersion.getText());
int rp = pdao.insertar(p);
int rv = vdao.insertarVer(ver,p);
} //end else
} catch (Exception error) {
JOptionPane.showMessageDialog(null, "Ha ocurrido un error, consulte a Soporte Técnico");
vp.limpiar();
}
} //end void
} //end class
}
Соединение
public class ConexionSQL {
Statement stm;
Connection con;
public Connection getConexionSQL() {
try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://127.0.0.1/analisisqa","root","");
//Statement stm = con.createStatement();
}
catch(ClassNotFoundException exc) {
exc.printStackTrace();
JOptionPane.showMessageDialog(null, "No Conectado");
}
catch (SQLException ex) {
Logger.getLogger(ConexionSQL.class.getName()).log(Level.SEVERE, null, ex);
JOptionPane.showMessageDialog(null, "No Conectado");
}
return con;
}
}
Мой главный.
public class Main {
public static void main(String[] args) {
ConexionSQL con = new ConexionSQL();
// TODO Auto-generated method stub
Proyecto p = new Proyecto();
Prueba pru = new Prueba();
Version ver = new Version();
CPrueba cpru = new CPrueba(pru, ver, p);
Cproyecto cp = new Cproyecto(p);
ProyectoDAO pdao = new ProyectoDAO();
PruebaDAO prudao = new PruebaDAO();
VersionDAO verdao = new VersionDAO();
Cprincipal cprincipal = new Cprincipal(p, pru, ver, cpru, cp, con, pdao, prudao, verdao);
cprincipal.initPrincipal();
}
}