Ir para conteúdo
  • ×   Você colou conteúdo com formatação.   Remover formatação

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.

  • Conteúdo Similar

    • Por Laurofelipe
      Estou fazendo um metodo para buscar dados em uma tabela, todas as linhas ou apenas conforme um nome, se for passado este parâmetro.
      Para não ter que duplicar o mesmo código, por apenas dois objetos, (PreparedStatement e ResultSet), dentro do try {... tenho um if () {}...}...}, conforme código abaixo.
      Acontece que não consegui instanciar, recebo um aviso de que não é possível instanciar estes objetos, sera?
      Então, se inicializo fora, não tenho acesso dentro do if () {...}. Se inicializo dentro, não tenho depois como varrer o resultado (while ...).
      Tenho como resolver?
      Agradeço qualquer ajuda do pessoal mais calejado.
      Lauro
       
      public ArrayList<Atleta> atletaBuscar(String nome) {
         ArrayList<Atleta> lista = new ArrayList<Atleta>();
         String sqlConsulta = null;
          try {
            Connection conn = ConectaMySql.obtemConexao();
            if (nome.isEmpty() || nome.equals("?")) { // buscar todos
               sqlConsulta = "SELECT * FROM atleta ORDER BY atleta_nome ASC";
               PreparedStatement ppStm = conn.prepareStatement(sqlConsulta);
            } else { // buscar por nome ou parte dele
              sqlConsulta = "SELECT * FROM atleta WHERE LOWER(atleta_nome) LIKE ? ORDER BY atleta_nome ASC";
              PreparedStatement ppStm = conn.prepareStatement(sqlConsulta);
              ppStm.setString(1, nome);
         }
         ResultSet rsAtleta = ppStm.executeQuery();
          while(rsAtleta.next()) {
             Atleta atle = new Atleta();
       
             atle.setAtleta_id(rsAtleta.getInt(1));
             ....
              lista.add(atle);
         }
         conn.close();
          } catch (Exception e){
             e.printStackTrace();
         }
         return lista;
      }
      Ja tentei conforme alguns post da net -> ResultSet rsAtleta = new ResultSet(); <- mas da o erro, que não pode ser instanciado
    • Por laryts
      Olá,
      Meu projeto é um site em html e jsp. E estou recuperando dados do banco de dados, e mostrando no jsp.
      Fiz isso por meio de uma classa java.
       
       
      AcessoDados.java
      public static List<DetalhesLivro> getDetalhesLivroById(int id) { List<DetalhesLivro> ls = new LinkedList<>(); String sql = "select j.nrLivro, j.nmLivro, j.dtPublicacao, j.nrPagina, j.dsSuplemento, j.dsCadernosEspeciais, ec.dsConservacao, p.dsPeriodicidade, j.dsObservacao from muLivro j left outer join muEstadoConservacao ec on j.cdConservacao = ec.cdConservacao left outer join muPeriodicidade p on j.cdPeriodicidade = p.cdPeriodicidade where j.nrLivro = '"+id+"'"; try { ResultSet rs = conexao.getPreparedStatement(sql).executeQuery(); while (rs.next()) { DetalhesLivro dLivro = new DetalhesJornais(rs.getInt(1), rs.getString(2), rs.getTimestamp(3), rs.getInt(4), rs.getString(5).charAt(0), rs.getString(6).charAt(0), rs.getString(7), rs.getString(8), rs.getString(9)); ls.add(dLivro); } } catch (ClassNotFoundException | SQLException ex) { Logger.getLogger(DataAccess.class.getName()).log(Level.SEVERE, null, ex); } return ls; } livro.jsp
      <% String cod = request.getParameter("pCod"); if (cod != "") { int codInt = Integer.parseInt(cod); DataAccess da = new DataAccess(); List<DetalhesJornais> djornais = da.getDetalhesJornalById(codInt); for (DetalhesJornais detalhesJornais : djornais) { %> <table> </table> <% } } %> E acontece algo muito estranho, quando voltou digitar o codigo para pesquisar, alguns registros retornam normalmente, e mostram no html normal. Mas alguns codigos vão para a pagina de erro, logo quando entra da linha
      etalhesLivro dLivro = new DetalhesJornais(...);. Depois desta linha ele sai do while, e vai direto para o <html> da pagina livro.jsp ((pelo Debug consegui essas informações, porém não mostra nenhuma mensagem de erro no Debug))
       
       
      Alguem pode me ajudar???
      É um erro muito estranho, e até difícil de explicar, se não ficou claro. tento ser mais detalhista
    • Por mnmn
      Olá pessoal.
       
      Tenho o seguinte código onde tenho duas queries, na primeira capturo o COUNT do campo nome_usuario, na segunda seleciono os campos que desejo. Gostaria de melhorar a performance, fazendo uma só query. Alguém pode me ajudar?
      <?php defined('BASEPATH') OR exit('No direct script access allowed'); class TodosAgendamentosFuturos_model extends CI_Model{ public function main($funcionario, $dataAtual, $limit, $start) { //Array para guardar dados a serem retornados $resultados = array(); //QUERY TO BIND TOTALCOUNT $sql = "SELECT DISTINCT COUNT(u.nome_usuario) AS total FROM horariosfuncionario hfs INNER JOIN usuario u INNER JOIN statushorariofuncionario shf INNER JOIN funcionario f INNER JOIN agendamento a INNER JOIN formapagamentosalao fps ON a.codigo_formapagamentosalao = fps.codigo_formapagamentosalao AND a.codigo_usuario = u.codigo_usuario AND a.codigo_horariosfuncionario = hfs.codigo_horariosfuncionario AND shf.codigo_statushorariofuncionario = hfs.codigo_statushorariofuncionario AND f.codigo_funcionario = hfs.codigo_funcionario WHERE STR_TO_DATE(hfs.data_horariosfuncionario, '%d/%m/%Y') > STR_TO_DATE(?, '%d/%m/%Y') AND f.codigo_funcionario = ? ORDER BY STR_TO_DATE(hfs.data_horariosfuncionario, '%d/%m/%Y'), STR_TO_DATE(hfs.horario_horariosfuncionario,'%H:%i')"; $total = $this->db->query($sql, array($dataAtual, $funcionario)); //Selecionando todos agendamentos futuros $sql = "SELECT DISTINCT u.nome_usuario, u.telefone1_usuario, u.telefone2_usuario, a.codigo_agendamento, hfs.horario_horariosfuncionario, hfs.data_horariosfuncionario, a.comentario_agendamento, fps.nome_formapagamentosalao FROM horariosfuncionario hfs INNER JOIN usuario u INNER JOIN statushorariofuncionario shf INNER JOIN funcionario f INNER JOIN agendamento a INNER JOIN formapagamentosalao fps ON a.codigo_formapagamentosalao = fps.codigo_formapagamentosalao AND a.codigo_usuario = u.codigo_usuario AND a.codigo_horariosfuncionario = hfs.codigo_horariosfuncionario AND shf.codigo_statushorariofuncionario = hfs.codigo_statushorariofuncionario AND f.codigo_funcionario = hfs.codigo_funcionario WHERE STR_TO_DATE(hfs.data_horariosfuncionario, '%d/%m/%Y') > STR_TO_DATE(?, '%d/%m/%Y') AND f.codigo_funcionario = ? ORDER BY STR_TO_DATE(hfs.data_horariosfuncionario, '%d/%m/%Y'), STR_TO_DATE(hfs.horario_horariosfuncionario,'%H:%i') LIMIT ".$limit." OFFSET ".$start; $resultado = $this->db->query($sql, array($dataAtual, $funcionario)); //Percorrendo resultados retornados foreach ($resultado->result() as $row) { //Captura dia da semana da data enviada como parâmetro usando o helper dia_semana $dia = diasemana($dataAtual); //Adiciona resultados no array resultados array_push($resultados, array('nome_usuario' => $row->nome_usuario, 'telefone1_usuario' => $row->telefone1_usuario, 'telefone2_usuario' => $row->telefone2_usuario, 'codigo_agendamento' => $row->codigo_agendamento, 'horario' => $row->horario_horariosfuncionario, 'data' => $row->data_horariosfuncionario, 'nomeDiaSemana' => $dia, 'comentario' => $row->comentario_agendamento, 'formaPagamento' => $row->nome_formapagamentosalao)); } $rows = $resultados; $data = array( "success"=>true, "totalCount"=>$total->row()->total, "menu"=>$rows ); echo json_encode($data); } }
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.