/** * incluir * * @param VO Usuario * @return boolean */ public static boolean incluir(Usuario usuario) { SigeDataBase db = new SigeDataBase(); String query = "INSERT INTO usuarios(cd_usuario,cd_entidade,nome_usuario,cpf,login,senha,ativo)" + " VALUES(default, ?, ?, ?, ?, encode( ?,'base64'), ?)"; try { Statement stmt = db.getConn().createStatement(); ResultSet rs = stmt.executeQuery("SELECT last_value as codigo FROM usuarios_cd_usuario_seq"); rs.next(); int codigo = rs.getInt("codigo") + 1; usuario.setCodigo(codigo); db.getConn().setAutoCommit(false); db.prepareStatement(query); db.setInt(1, usuario.getEntidade().getCodigo()); db.setString(2, usuario.getNomeCompleto()); db.setString(3, usuario.getCPF()); db.setString(4, usuario.getLogin()); if (usuario.getSenha() != null) { db.setString(5, usuario.getSenha()); } else { db.setString(5, ""); } db.setBoolean(6, usuario.isAtivo()); db.executeUpdate(); db.getPreparedStatement().close(); db.prepareStatement("INSERT INTO permissao_usuario(cd_usuario, cd_permissao) VALUES(?,?)"); for (int i = 0; i < usuario.getPermissoes().length; i++) { db.setInt(1, usuario.getCodigo()); db.setInt(2, usuario.getPermissoes()[i].getCodigo()); db.executeUpdate(); } db.getConn().commit(); db.closeConnection(); return true; } catch (SQLException ex) { try { db.getConn().rollback(); db.closeConnection(); ex.printStackTrace(); } catch (SQLException ex1) { System.out.println("Erro de SQL: " + ex1.getMessage()); ex1.printStackTrace(); } return false; } }
/** * 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; } }