/** * buscaPorLogin * * @param nome String * @return ArrayList */ public static ArrayList<Usuario> buscaPorLogin(String login) { SigeDataBase db = new SigeDataBase(); try { String query = "SELECT cd_usuario as codigo, nome_usuario as nome," + " cd_entidade as entidade, login, decode(senha,'base64')" + " as senha, cpf, ativo FROM usuarios WHERE lower(login) LIKE lower(?) ORDER BY nome_usuario"; db.setPreparedStatement( db.getConn() .prepareStatement( query, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY)); db.setString(1, '%' + login + '%'); ResultSet rs = db.executeQuery(); if (rs.next()) { ArrayList<Usuario> resultado = new ArrayList<Usuario>(); do { Usuario usuario = new Usuario(); Entidade entidade = (Entidade) EntidadeDAO.buscaPorCodigo(rs.getInt("entidade")); if (entidade != null) { usuario.setEntidade(entidade); } else { throw new SQLException("Entidade Não Existe"); } usuario.setCodigo(rs.getInt("codigo")); usuario.setNomeCompleto(rs.getString("nome")); usuario.setLogin(rs.getString("login")); usuario.setSenha(rs.getString("senha")); usuario.setCPF(rs.getString("cpf")); usuario.setPermissoes(PermissaoDAO.buscaPorUsuario(usuario)); usuario.setAtivo(rs.getBoolean("ativo")); resultado.add(usuario); } while (rs.next()); rs.close(); db.closeConnection(); return resultado; } db.closeConnection(); return null; } catch (SQLException ex) { ex.printStackTrace(); return null; } }
/** * buscaPorCodigo * * @param codigo int * @return Usuario */ public static Usuario buscaPorCodigo(int codigo) { SigeDataBase db = new SigeDataBase(); try { String query = "SELECT cd_usuario as codigo, ativo, nome_usuario " + "as nome, cd_entidade as entidade, login," + " decode(senha,'base64') as senha, cpf FROM usuarios" + " WHERE cd_usuario=? ORDER BY nome_usuario"; db.prepareStatement(query); db.setInt(1, codigo); ResultSet rs = db.executeQuery(); if (rs.next()) { Usuario usuario = new Usuario(); Entidade entidade = EntidadeDAO.buscaPorCodigo(rs.getInt("entidade")); if (entidade != null) { usuario.setEntidade(entidade); } else { throw new SQLException("Entidade Nao Existe"); } usuario.setCodigo(rs.getInt("codigo")); usuario.setNomeCompleto(rs.getString("nome")); usuario.setLogin(rs.getString("login")); usuario.setSenha(rs.getString("senha")); usuario.setCPF(rs.getString("cpf")); usuario.setAtivo(rs.getBoolean("ativo")); usuario.setPermissoes(PermissaoDAO.buscaPorUsuario(usuario)); rs.close(); db.closeConnection(); return usuario; } db.closeConnection(); return null; } catch (SQLException ex) { ex.printStackTrace(); return null; } }
public static Usuario buscaPorLoginSenha(String login, String senha) { SigeDataBase db = new SigeDataBase(); try { db.prepareStatement( "SELECT cd_usuario FROM usuarios WHERE login = ? AND senha = encode('" + senha + "','base64')"); db.setString(1, login); ResultSet rs = db.executeQuery(); if (rs.next()) { Usuario usuario = buscaPorCodigo(rs.getInt("cd_usuario")); rs.close(); db.closeConnection(); return usuario; } rs.close(); db.closeConnection(); } catch (SQLException ex) { ex.printStackTrace(); } return null; }
/** * buscaParametrizada * * @param nome String * @return ArrayList */ @SuppressWarnings("unchecked") public static ArrayList<Usuario> buscaParametrizada(Map<String, Object> campos) { SigeDataBase db = new SigeDataBase(); String query = "SELECT cd_usuario FROM permissao_por_usuario WHERE lower(nome_usuario)" + " LIKE lower(?) AND lower(login) LIKE lower(?) AND cpf LIKE ? AND cd_usuario!=1"; StringBuffer preQuery = new StringBuffer(query); if (campos.get("entidade") != null) { preQuery.append(" AND cd_entidade=?"); } List<Permissao> permissoes = null; try { permissoes = (List<Permissao>) campos.get("permissoes"); } catch (ClassCastException e) { // Do nothing } if (permissoes != null) { preQuery.append("AND ("); for (Iterator<Permissao> iter = permissoes.iterator(); iter.hasNext(); ) { preQuery.append(" cd_permissao=?"); if (iter.hasNext()) { preQuery.append(" OR"); } } preQuery.append(" )"); } String status = (String) campos.get("status"); if (!status.equals("both")) { preQuery.append(" AND ativo=?"); } preQuery.append("GROUP BY cd_usuario"); query = new String(preQuery); try { int i = 1; db.prepareStatement(query); db.setString(i++, '%' + (String) campos.get("nomeCompleto") + '%'); db.setString(i++, '%' + (String) campos.get("login") + '%'); db.setString(i++, '%' + (String) campos.get("cpf") + '%'); if (campos.get("entidade") != null) { Entidade entidade = (Entidade) campos.get("entidade"); db.setInt(i++, entidade.getCodigo()); } if (permissoes != null) { for (Iterator<Permissao> iter = permissoes.iterator(); iter.hasNext(); ) { Permissao permissao = iter.next(); db.setInt(i++, permissao.getCodigo()); } } if (!status.equals("both")) { db.setBoolean(i++, status.equals("ativo")); } ResultSet rs = db.executeQuery(); if (rs.next()) { ArrayList<Usuario> resultado = new ArrayList<Usuario>(); do { Usuario usuario = buscaPorCodigo(rs.getInt("cd_usuario")); resultado.add(usuario); } while (rs.next()); rs.close(); db.closeConnection(); return resultado; } db.closeConnection(); return null; } catch (SQLException ex) { ex.printStackTrace(); } db.closeConnection(); return null; }