[Resolvido]Não deixar usuario cadastrar valores iguais

3 respostas
dcorteztec
eu to comecando agora eu tenho esse método que não deixa usuário cadastrar logins iguais mas ele naum esta deixando cadastrar nada.
public boolean verificaLogin(Cadastro cadastro) throws SQLException {
		PreparedStatement stmt = connection
				.prepareStatement("select * from sos_login where login=?");
		stmt.setString(1, cadastro.getLogin());
		ResultSet rs = stmt.executeQuery();
		try {
			if (!rs.next()) {
				return false;
			}
			return !rs.next();
		} finally {
			rs.close();
			stmt.close();
		}
	}
quem esta chamando esse método é o form
public ActionErrors validate(ActionMapping mapping,
			HttpServletRequest request) {
		ActionErrors erros = new ActionErrors();
		try {
			if (!new CadastroDAO().verificaLogin(cadastro)){
			erros.add("login", new ActionMessage("erro.campo.login"));
			}
		} catch (SQLException e) {
			
			e.printStackTrace();
		}

3 Respostas

robinsonbsilva

Jovem,

Antes de “Inserir”, faça a validação, caso haja um login inserido no BD vc dá um alerta…

//PSEUDOCÓDIGO
public void insert(){
   if(loginNotExists)
      insert();
   else{
     'da aviso"
  }
}
dcorteztec

Alterei o método assim e funcionou ele estava devolvendo a msn mais estava cadastrando agora funfou

public boolean verificaLogin(Cadastro cadastro) throws SQLException { PreparedStatement stmt = connection .prepareStatement("select * from sos_login where login=?"); stmt.setString(1, cadastro.getLogin()); ResultSet rs = stmt.executeQuery(); try { if (stmt.equals(cadastro.getLogin())) { return false; } return !rs.next(); } finally { rs.close(); stmt.close(); } }

T

Além da sua validacao seria legal adicionar constraint Unique pra te garantir mais

Criado 4 de setembro de 2009
Ultima resposta 4 de set. de 2009
Respostas 3
Participantes 3