Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal,como faço para verificar no banco de dados se existe um email duplicado?Se alguém puder me dar uma dica de como fazer isso agradeço muito.Segue o meu bean:
> package cadastro.bean. import java.sql.Connection. import java.sql.PreparedStatement. import java.sql.ResultSet. import java.sql.SQLException. import java.util.LinkedList. import javax.naming.InitialContext. import javax.naming.NamingException. import javax.sql.DataSource. import cadastro.bean.UserData. public class AdminUsers { protected static DataSource dataSource. public AdminUsers() throws Exception { if (dataSource == null) { try { InitialContext ic = new InitialContext(). // se for tomcat dataSource = (DataSource) ic.lookup("java:comp/env/jdbc/cadastroDS"). // no JBoss faça // dataSource = (DataSource) ic.lookup("java:jdbc/cadastroDS"). } catch (NamingException ex) { System.out.println(ex.getMessage()). throw ex. } } } protected Connection getConnection() throws SQLException { Connection conn = null. try { conn = dataSource.getConnection(). } catch (SQLException e) { throw e. } return conn. } protected void closeConnection( Connection conn, PreparedStatement stmt, ResultSet rs) { if (rs!= null) { try { rs.close(). } catch (SQLException e) { } } if (stmt!= null) { try { stmt.close(). } catch (SQLException e) { } } if (conn!= null) { try { conn.close(). } catch (SQLException e) { } } } public LinkedList getUserList() throws SQLException { Connection conn = null. PreparedStatement stmt = null. ResultSet rs = null. LinkedList users = new LinkedList(). try { conn = getConnection(). stmt = conn.prepareStatement("select * from dbcadastro"). rs = stmt.executeQuery(). while (rs.next()) { UserData user = new UserData(). // user.setId(rs.getInt("id")). user.setNome(rs.getString("nome")). user.setSobrenome(rs.getString("sobrenome")). user.setOpcaoemail(rs.getString("mostraremail")). user.setEmail(rs.getString("email")). user.setTelefone(rs.getString("telefone")). user.setEndereco(rs.getString("endereco")). user.setBairro(rs.getString("bairro")). user.setCidade(rs.getString("cidade")). user.setEstado(rs.getString("estado")). user.setLogin(rs.getString("login")). user.setSenha(rs.getString("senha")). user.setInformativos(rs.getString("informativos")). users.add(user). } } catch (SQLException e) { throw e. } finally { closeConnection(conn, stmt, rs). } return users. } public void insertUser(UserData user) throws SQLException { Connection conn = null. PreparedStatement stmt = null. ResultSet rs = null. try { conn = getConnection(). stmt = conn.prepareStatement( "insert into dbcadastro \n" + "(nome, sobrenome, mostraremail, email, telefone, endereco, bairro, cidade, estado, login, senha, informativos) \n" + "values (?,?,?,?,?,?,?,?,?,?,?,?)"). stmt.setString(1, user.getNome()). stmt.setString(2, user.getSobrenome()). stmt.setString(3, user.getOpcaoemail()). stmt.setString(4, user.getEmail()). stmt.setString(5, user.getTelefone()). stmt.setString(6, user.getEndereco()). stmt.setString(7, user.getBairro()). stmt.setString(8, user.getCidade()). stmt.setString(9, user.getEstado()). stmt.setString(10, user.getLogin()). stmt.setString(11, user.getSenha()). stmt.setString(12, user.getInformativos()). stmt.executeUpdate(). } catch (SQLException e) { throw e. } finally { if (rs!= null) { rs.close(). } if (stmt!= null) { stmt.close(). } } } public void updateUser(UserData user) throws SQLException { Connection conn = null. PreparedStatement stmt = null. ResultSet rs = null. try { conn = getConnection(). stmt = conn.prepareStatement( "update dbcadastro set \n" + "nome =?, sobrenome =?, mostraremail =?, email =?, telefone =?, endereco =?, bairro =?, cidade =?, estado =?, informativos =?\n" + "where id =?"). stmt.setString(1, user.getNome()). stmt.setString(2, user.getSobrenome()). stmt.setString(3, user.getOpcaoemail()). stmt.setString(4, user.getEmail()). stmt.setString(5, user.getTelefone()). stmt.setString(6, user.getEndereco()). stmt.setString(7, user.getBairro()). stmt.setString(8, user.getCidade()). stmt.setString(9, user.getEstado()). stmt.setString(10, user.getInformativos()). stmt.setInt(11, user.getId()). stmt.executeUpdate(). } catch (SQLException e) { throw e. } finally { if (rs!= null) { rs.close(). } if (stmt!= null) { stmt.close(). } } } public void deleteUser(UserData user) throws SQLException { // public void deleteUser(int id) throws SQLException { Connection conn = null. PreparedStatement stmt = null. ResultSet rs = null. try { conn = getConnection(). stmt = conn.prepareStatement( "delete from dbcadastro where id =?"). stmt.setInt(1, user.getId()). stmt.executeUpdate(). } catch (SQLException e) { throw e. } finally { if (rs!= null) { rs.close(). } if (stmt!= null) { stmt.close(). } } }} Segue o meu action: > package cadastro.action. import java.sql.SQLException. import java.util.LinkedList. import javax.servlet.http.HttpServletRequest. import javax.servlet.http.HttpServletResponse. import javax.servlet.http.HttpSession. import org.apache.struts.action.Action. import org.apache.struts.action.ActionError. import org.apache.struts.action.ActionErrors. import org.apache.struts.action.ActionForm. import org.apache.struts.action.ActionForward. import org.apache.struts.action.ActionMapping. import org.apache.struts.validator.DynaValidatorForm. import cadastro.bean.AdminUsers. import cadastro.bean.UserData. public class SaveInsertUsuarioAction extends Action { public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { DynaValidatorForm dynaForm = (DynaValidatorForm) form. ActionErrors errors = new ActionErrors(). String senha1 = (String)dynaForm.get("senha"). String senha2 = (String)dynaForm.get("confirmasenha"). String nome = (String)dynaForm.get("nome"). String sobrenome = (String)dynaForm.get("sobrenome"). String email = (String)dynaForm.get("email"). String login = (String)dynaForm.get("login"). String senha = (String)dynaForm.get("senha"). HttpSession session = request.getSession(). // popula o bean do usuario com os dados que vieram do Form UserData user = (UserData) session.getAttribute("insertUserBean"). //user.setIdUsuario(Integer.parseInt((String)dynaForm.get("idUsuario"))). if ((nome == null) || (nome.length() < 1)) { errors.add("nome", new ActionError("error.nome.required")). } if ((sobrenome == null) || (sobrenome.length() < 1)) { errors.add("sobrenome", new ActionError("error.sobrenome.required")). } if ((email == null) || (email.length() < 1)) { errors.add("email", new ActionError("error.email.required")). } if ((login == null) || (login.length() < 1)) { errors.add("login", new ActionError("error.login.required")). } if ((senha == null) || (senha.length() < 1)) { errors.add("senha", new ActionError("error.senha.required")). } if (!senha1.equals(senha2)) { errors.add("confirmasenha", new ActionError("error.confirmasenha")). } user.setNome((String)dynaForm.get("nome")). user.setSobrenome((String)dynaForm.get("sobrenome")). user.setOpcaoemail((String)dynaForm.get("opcaoemail")). user.setEmail((String)dynaForm.get("email")). user.setTelefone((String)dynaForm.get("telefone")). user.setEndereco((String)dynaForm.get("endereco")). user.setBairro((String)dynaForm.get("bairro")). user.setCidade((String)dynaForm.get("cidade")). user.setEstado((String)dynaForm.get("estado")). user.setLogin((String)dynaForm.get("login")). user.setSenha((String)dynaForm.get("senha")). user.setInformativos((String)dynaForm.get("informativos")). AdminUsers adminUsers = new AdminUsers(). String email1 = EMAIL QUE VEM DO BANCO. if(email.equals(email1)) { errors.add("Email", new ActionError("error.Email.duplicateKey")). } if (!errors.isEmpty()) { saveErrors(request, errors). return (mapping.findForward("error")). } // adminUsers.insertUser(user). return (mapping.findForward("success")). }} Não sei como puxar essa verificação lá do beanCarregando comentários...