[AJUDA] duvida em consultar no Banco de Dados

[b]Estou implmentando uma agenda, e só só quero incluir um e-mail único, ou seja, dois usuários ou mais não poderão ter o msmo e-mail.
Eu quero consultar no Banco de Dados, se a ‘palavra’ (que é o email de algum usuario qualquer), existe no banco de dados.

Implementei, da seguinte, forma:
-o método é boolean, se encontrar vai retornar false, pq o nome ja existe;
-se nao encontrar vai retornar verdadeiro, pq vou poder inserir no banco de Dados;

Não está dando certo, ele nunca entra na estrutura if(), mesmo eu colocando os mesmos valores.
Por favor, alguem puderia tirar a minha duvida, e se tiverem uma forma mais facil de fazer o que estou tentando fazer.
[/b]

//parametros da função
String campo=email;
String palavra=fulano.obterEmail();
String sql=“Select email from usuario where email=”+ “’”+campo+"’";
//Select email from usuario where email=‘usuario@mail.com’

[i]public static boolean consultarUsuario(String palavra, String sql, String campo)
{
//método do tipo boolean pq quero que retorna verdadeiro ou falso
try {

		Class.forName("com.mysql.jdbc.Driver");//chamando a classe do driver
		String url = "jdbc:mysql://localhost:3306/autenticacao";//criando a url
		
		Connection conectar = DriverManager.getConnection(url,"root","12345678");//conectando
		Statement sta = conectar.createStatement();
		ResultSet rs;
	
		rs=sta.executeQuery(sql);
		
		if(rs.first()){//indo pro primeiro rs
			do{
				String caixa = rs.getString(campo);
				
				if(palavra==caixa)
					return false;//se encontar igual nome ja existe
					
				
			}while(rs.next());
			
			return true; //nao encontrou nenhum nome igual
		}
	
	} catch (ClassNotFoundException e) {
		e.printStackTrace();
	} catch (SQLException e) {
		e.printStackTrace();
	}
	
	return true; //nao encontrou nenhum nome igual
}[/i]

Use unique!

http://dev.mysql.com/doc/refman/5.1/en/create-table.html