Bueno he aqui el codigo de mi DAOImp donde llamo al statement el procedimiento llamado VALIDA_USUARIO es el que me retorna los nulos.
Código PHP:
Ver originalpublic class UsuarioDAOImp implements UsuarioDAO {
@Override
public void insertaUsuario (Usuario usuario) throws SQLException{
Connection conexion = ConexionBD.getConexion();
CallableStatement cstmt = null;
String sql = "{call INSERTA_USUARIO(?,?,?,?,?,?,?,?,?,?,?,?,?)}";
try {
cstmt = conexion.prepareCall(sql);
cstmt.registerOutParameter(1, Types.INTEGER);
cstmt.setString(2, usuario.getNombre());
cstmt.setString(3, usuario.getNcontrol() );
cstmt.setString(4, usuario.getEmail());
cstmt.setString(5, usuario.getpwd());
cstmt.setString(6, usuario.getMateria1());
cstmt.setString(7, usuario.getMateria2());
cstmt.setString(8, usuario.getMateria3());
cstmt.setString(9, usuario.getMateria4());
cstmt.setString(10, usuario.getMateria5());
cstmt.setString(11, usuario.getMateria6());
cstmt.setString(12, usuario.getMateria7());
cstmt.setString(13, usuario.getMateria8());
cstmt.execute();
int idc = cstmt.getInt(1);
usuario.setIdUsuario(idc);
}finally{
if (cstmt != null) cstmt.close();
if (conexion != null )conexion.close();
}
}
@Override
public void validaUsuario (Usuario usuario) throws SQLException{
Connection conexion = ConexionBD.getConexion();
CallableStatement cstmt = null;
String sql ="{call VALIDA_USUARIO(?,?,?,?,?,?,?,?,?,?,?,?)}";
try {
cstmt = conexion.prepareCall(sql);
cstmt.setString(1, usuario.getEmail());
cstmt.setString(2, usuario.getpwd());
cstmt.registerOutParameter(3, Types.INTEGER);
cstmt.registerOutParameter(4, Types.VARCHAR);
cstmt.registerOutParameter(5, Types.VARCHAR);
cstmt.registerOutParameter(6, Types.VARCHAR);
cstmt.registerOutParameter(7, Types.VARCHAR);
cstmt.registerOutParameter(8, Types.VARCHAR);
cstmt.registerOutParameter(9, Types.VARCHAR);
cstmt.registerOutParameter(10, Types.VARCHAR);
cstmt.registerOutParameter(11, Types.VARCHAR);
cstmt.registerOutParameter(12, Types.VARCHAR);
cstmt.execute();
int idu = cstmt.getInt(3);
usuario.setIdUsuario(idu);
usuario.setNombre(cstmt.getString(4));
usuario.setMateria1(cstmt.getString(5));
usuario.setMateria2(cstmt.getString(6));
usuario.setMateria3(cstmt.getString(7));
usuario.setMateria4(cstmt.getString(8));
usuario.setMateria5(cstmt.getString(9));
usuario.setMateria6(cstmt.getString(10));
usuario.setMateria7(cstmt.getString(11));
usuario.setMateria8(cstmt.getString(12));
}finally{
if (cstmt != null) cstmt.close();
if (conexion != null) conexion.close();
}
}
public static void main (String[] args){
UsuarioDAO udao = new UsuarioDAOImp();
Usuario usuario
= new Usuario
("marcos", "12345678", "[email protected]", "12345678", "Matematicas","Español","Quimica","Fisica","Biologia","Ingles","Civismo","Calculo de varias variables");
try {
udao.insertaUsuario(usuario);
if (usuario.getIdUsuario()== -1)
System.out
.println
("El Usuario no se inserto"); else
System.out
.println
("El Usuario se inserto");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
y si el statement fuera el del problema como en el caso que me mencionas Fuzzylog, todos los argumentos regresarían nulos no????
y un agradecimiento a todos por la ayuda prestada hasta el momento :)