Ir ao conteúdo

psykotico

Membro Pleno
  • Posts

    301
  • Cadastrado em

  • Última visita

Tudo que psykotico postou

  1. você não precisa mover o ponteiro do ResultSet para o começo ... faça algo assim: public final void preenchertabela(String Sql){ ArrayList dados = new ArrayList(); String [] colunas = new String []{"Numero de cadastro","Nome", "Data de Nscimento","Email","Telefone","Cpf","Endereco","Cidade" ,"Bairro","Numero","Instituicao","Curso","Periodo","Inicio" ," Termino"}; try{ //adicionei a conexão e a execução no mesmo try, para tratar todos os erros do banco num mesmo bloco conn.conexao(); conn.executaSql(Sql); while(conn.rs.next(){ dados.add(new Object[]{ conn.rs.getInt("cod_estudante"), conn.rs.getString("nome"), conn.rs.getString("datanas"), conn.rs.getString("endereco"), conn.rs.getString("cpf"), conn.rs.getString("cidade"), conn.rs.getString("bairro"), conn.rs.getString("numero"), conn.rs.getString("instituicao"), conn.rs.getString("curso"), conn.rs.getString("inicio"), conn.rs.getString("termino"), conn.rs.getString("telefone"), conn.rs.getString("periodo"), conn.rs.getString("email") }); } }catch(SQLException ex){ JOptionPane.showMessageDialog(rootPane,"Erro ao executar a Query:\n"+ex.getMessage()); } } o primeiro next() após a query automaticamente seta para a primeira posição do resultset. Além disso, essa forma prevê um erro caso o resultset não retorne nenhuma informação na query.
  2. Sabes que para pegar a data atual do sistema, basta instanciar o objeto Date sem parâmetros, correto? então, um SimpleDateFormat com uma instancia dessa colocaria a data na label ... faça isso logo na criação do objeto Label, e com isso ele ficaria fixado como você sugeriu ... Sobre o calculo, o mais simples seria utilizar a Classe Calendar Calendar calendar = Calendar.getInstance(); calendar.set(ano, mes, dia); if (relogio.after(calendar.getTime()){ idade--; } De uma aprofundada na função Calendar que talvez seja uma solução melhor e mais adequada do que utilizar o SimpleDateFormat ...
  3. Sendo bem sincero, tive muitos problemas com a lib Gson. Mesmo sendo muito rápida, ela deixa a desejar no parser. Atualmente não troco a Jackson por nada ...
  4. Ok ... vamos lá: Isso é relativo. Vai de gosto. Há quem goste mais do NetBeans, Há quem use até o JDeveloper. Eu acho o IntelliJ o melhor, mas utilizo muito o eclipse no serviço. Novamente relativo. O Ideal é você poder trabalhar com as funções que você pode pegar no mercado de trabalho. Com isso, Wildfly ajuda bastante, Tomcat tb é uma alternativa mas não tem o mesmo poderio, e por fim o Jetty, que é o mais simples de todos. (Vale ler sobre JBoss) Acabei de responder a um post sobre isso. Procure a apostilas da Caellum, ou livros da casa de código sobre JPA e Hibernate. Vai gostar bastante.
  5. psykotico

    Java Classe Enum

    Enum é (BEM ENTRE ASPAS) "uma classe estática" com constantes para que você não precise ficar gerando um objeto com valores já conhecidos e que sempre serão os mesmos. No Exemplo que você passou, você precisa de um Enum para o Status do cheque ... seria algo assim: public enum StatusCheque { CHEQUE_SEM_FUNDO, CHEQUE_ESTA_OK; } Porém, um enum pode gerar um objeto completo para você, com atributos e valores. Veja esse exemplo: public enum StatusUsuario { OK(0, "Usuário está ok"), BLOQUEADO(1, "Usuário está bloqueado"), INATIVO(2, "Usuário está inativo"); private int codigo; private String descricao; private StatusUsuario(String codigo, String descricao){ this.codigo = codigo; this.descricao = descricao; } public int getCodigo(){ return this.codigo; } public String getDescricao(){ return this.descricao; } } Com isso, se eu fizer uma chamada StatusUsuario.OK.getDescricao, vai me retornar o String "Usuário está ok".
  6. Meio complicado responder, mas vou tentar. SE você não está no meio de um loop (onde o JSF seta cada valor para a variável), quando você indica 'partePrimeiraSecao' você deve estar mencionando o seu MB. Se ele está nulo pode ser que seu escopo esteja errado. De uma olhada nisso. No Primefaces, eu anoto meus MB com: @Named @ViewScoped
  7. Eu recomendo: Iniciante: Use a Cabeça! Servlets & JSP Spring MVC: Domine o principal framework web Java Intermediário: (No geral, não importa se web ou não, vale a pena ler esses livros) Java Efetivo Domain Driven Design Padrões de Projeto Avançado: Primefaces Avançado + Web Service Rest Spring Microservices in Action Isso tudo apenas para Java ... Após isso, começa a procura por itens como: - Testes automatizados - Integração Contínua - Mensageria - Escalabilidade - Bancos de Dados Relacionais e Não Relacionais E quando a coisa começar a ficar legal, começa a estudar as outras linguagens como: - Ruby (velocidade de desenvolvimento) - Node.JS (performance) - Scala (dizem ser o melhor do mundo Java com o melhor do mundo Ruby) - Go (Linguagem relativamente nova, mas bem leve. Boa alternativa ao Groovy) - Elixir (Linguagem criada por um brasileiro, assim como a Linguagem Lua, e está tendo bom feedback lá fora por sua performance e velocidade de desenvolvimento) Afinal, para nós desenvolvedores, a solução não pode ser dependente da linguagem, tem que se ter mente aberta para tudo.
  8. Usando diretamente pelo JSTL ... inicialmente no começo do arquivo acrescente a taglib <%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%> Isso vai fazer o render entender as tags corretamente. Agora no local onde você quer o switch (Lembre-se de fechar antes o bloco de código) <c:choose> <c:when test="${cp == 1}"><% out.println("O novo valor do produto é ===>" + (val*1.10)) %></c:when> <c:when test="${cp == 2}"><% out.println("O novo valor do produto é ===>" + (val*1.15)) %></c:when> <c:when test="${cp == 3}"><% out.println("O novo valor do produto é ===>" + (val*1.20)) %></c:when> <c:when test="${cp == 4}"><% out.println("O novo valor do produto é ===>" + (val*1.25)) %></c:when> <otherwise></otherwise> </c:choose> Porém, fica a dica ... não calcule nada na view ... faça esses cálculos todos no controller, e passe o valor exato que vai ser apresentado na view, assim fica muito melhor para dar manutenção no seu código ...
  9. Por triangulação eu não tenho nem ideia de como fazer, já que essa informação não é tão simples de pegar (a não ser que você tenha contatos direto com a operadora para saber onde buscar essas informações no SO do celular) ... Por GPS é uma boa, mas você vai precisar de 2 coisas: - O GPS tem que ficar ativado 100% do tempo e com isso o consumo de bateria vai aumentar consideravelmente (se não tiver ele vai avisar que precisa ligar e qual aplicativo pretende utilizá-lo, e isso acho que foge a ideia do aplicativo) - Internet acessível sempre, pois a informação da Geolocalização será via internet, ou seja, força pacotes de dados com boa disponibilidade e cobertura. Mesmo que você faça um sistema que guarde as informações offline e depois envie para o server, o custo ainda será alto .... Comece aprendendo sobre como desenvolver o servidor, que é mais simples e quando você for fazer o mobile já vai ter algo esperando as informações ... Recomendo ler Spring Boot OU EJB ... para o mobile, tem várias videoaulas de android studio no youtube ... basta seguir uma
  10. O problema aí ficou no escopo ... seu código tenta referenciar this (ou seja, o próprio objeto), porém no local que você coloca esse this, o escopo dele é o ActionListener (pois esse é o objeto que está executando o método) ... o mais simples a ser feito seria o seguinte: setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); final JFrame window = this; Sair.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { window.dispose(); } });
  11. Poste o que vc já fez pra gente tentar dar uma ajuda na sua dúvida ...
  12. Depende ... o qto vc se sente motivado a ficar lendo livros, lendo fóruns, vendo video-aulas por dia??? Esse é o tempo ... não adianta falar um tempo pois cada um tem seu ritmo ... mas lembre-se, tente fazer isso sempre motivado ... um exemplo ... qdo comecei, eu teimei que queria fazer um jogo ... e fiz ... todos os exemplos que eu fazia, eu tentava implementar algo a mais nesse jogo .. por fim, criei um joguinho bem legal, para o mIRC, estilo action RPG, com customização de itens e tudo mais ... só gerava um lag absurdo, mas foi bem divertido fazer ele ... Sim, java vale a pena, e ainda vai ficar algum tempo assim ... Mas principalmente para projetos de serviços web ... no mais, acredito que tem coisa nova que funciona bem melhor ... Um outro bom pra começar é Ruby, que tb está tendo um mercado bom, e pra plataforma Web, tem um valor parecido com o Java aqui em SP ... Caso as empresas aceitem melhor outras linguagens, Scala, Go Lang e Elixir são ótimas pedidas ... gostei bastante dessas opções ... pena ainda terem um mercado restrito Se não sabe absolutamente nada de Java, recomendo Use a Cabeça Java ... após isso, recomendo aprender sobre Maven (ou Gradle) que é praticamente obrigatório nas empresas ... Então leia Padrões de Projeto: Soluções Reutilizáveis de Software Orientado à Objeto (Design Patterns do GoF) ... e por fim Java Efetivo ... Existem muitos outros livros, mas esses são os que mais me auxiliaram no início ...
  13. Tem vários erros no seu código .... vamos por partes: 1- você está usando Vetor ... com vetores, a forma certa de se atribuir um valor é indicando qual o índice desse falor ... assim: peso[i] = leitor.nextFloat(); 2- Não é necessário criar dois objetos da classe Scanner ... a mesma instância pode ler os dados numéricos e as Strings normalmente ... só chamar o método correto em cada situação (exatamente como você fez, porém na mesma classe 3- Você utiliza a Biblioteca Math para calcular o quadrado do valor passado ... porém, o valor que você passa é um float e um inteiro ... a biblioteca pede que seja passado dois doubles (um inteiro pode ser entendido como double pelo java) ... uma forma de fazer o quadrado e manter o valor como float, é fazendo a multiplicação do valor por ele mesmo ... 4- Veja essa parte do algoritmo: boolean continua = true; ... while(continua){ for(int i = 0; i <= 2; i++ ){ ... System.out.printf("Continuar, im ou [n]ão?"); continuaOuNao = leitor2.nextLine(); if(continuaOuNao.equals("n")){ continua = false; } } } você inicialmente fez um laço de repetição verificando o valor de continua, mas dentro você coloca um for ... nesse tipo de laço, você obrigatóriamente vai passar o total de vezes até que a condição não seja satisfatória (ou seja, i não ser menor nem igual a 2) ... assim, aquele if dentro do for não tem valor nenhum para parar a execução, ele sempre vai executar 3 vezes (valores de i sendo 0,1 e 2) e só depois vai checar o while ... Uma dica importante .. procure pela internet, ou com pessoas mais próximas como fazer o Teste de Mesa ... é um método simples para testar sua lógica para ver se está tudo ok ... pela internet em fóruns é um pouco complicado explicar, mas vale muito a pena no começo quando estamos apenas aprendendo a programar ...
  14. você pode visualizar todos os arquivos pelo eclipse ... basta clicar duas vezes no arquivo .... se não funcionar, clica com botão direito e depois em "Open With..." ... ai seleciona o "Text Editor" Baixar do repositório sempre é tudo ... você pode ignorar o que envia, não o que baixa ...
  15. Você pode usar a biblioteca Apache POI para fazer a leitura dos dados ... é uma das melhores soluções na minha opinião ... Claro que docx é um XML, e pode ser parseado tranquilamento no celular, mas pensando no tamanho do container por conta do throughput, vale a pena converter os dados em json e diminuir a quantidade de dados na transferência ... Edit: E se for fazer um webservice, melhor fazer um serviço que receba esse arquivo, leia esses dados, e persista em algum local, como um banco de dados, cache, ou algo que seja mais rápido de acessar ... ler o arquivo fisicamente toda vez que houver chamada do dispositivo vai tornar o serviço lento e ruim ... com isso você teria no mínimo dois métodos: um para receber o arquivo .. outro para recuperar os dados do arquivo ...
  16. você clica com o botão direito no arquivo e seleciona "Compare With..." e então, HEAD Revision (para comparar com o último commit) ... Ele marca tudo que está diferente no arquivo ...
  17. JRockit
  18. Nem tanto ... existem muitos programas em C# por exemplo ... porém, as instituições financeiras NUNCA vão apostar em linguagens que não tenham o mínimo de estabilidade, comunidade e segurança Sim e nem tanto ... o java é lento, pois pense que para acessar instruções de Sistema operacional você precisa passar pela maquina virtual, e esta realizará a função para depois pegar o resultado e repassar ao seu programa ... passos a mais, tornam a execução mais lenta ... porém, a VM possui uma IA que tenta verificar as instruções mais utilizadas e otimizá-las conforme a situação, desde guardar em cache, qto melhorarias no pipeline de execução de Threads... Já fiz APIs que tinham como tempo de timeout de resposta em 0.4s, fazendo consulta a banco, e a aplicação funcionou tranquilamente... Segurança é relativa ... afinal, se pegar no ponto principal, se está conectado na internet, já não está seguro ... porém, como ele roda dentro de uma maquina virtual (tendo ainda um servidor de aplicações nas versões web) ele passa a ser mais estável. Não só bancos utilizam java, os grandes e-commerce, Netflix, iFood, todas utilizam Java em seu core ... Claro que Java não é a solução para tudo, mas ao menos para APIs e o conceito de microservices, o Java atende muito bem ... Para Desktop o povo usa, mas não curto de forma alguma, e para front-end em websites, eu quero bater em quem teve a brilhante ideia de colocar Java ... para isso, pode ser outra linguagem como Ruby, Node.JS sem problemas, ou mesmo implementar o front em Angular.JS ou React.JS ...
  19. Meio complicado ajudar ... você quer um gerador aleatorio?? se for assim, crie uma lista de frases, e na ação do clique, pegue aleatoriamente uma das frases da lista e apresente ...
  20. você tem que comparar o valor, e não o objeto .. assim: JButton btnAddDiretorio = new JButton("Adicionar diretório"); btnAddDiretorio.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { String novoDiretorio = campoNovoDiretorio.getText(); JComboBox campoDiretorio = SingletonComboDiretorio.getInstance(); campoDiretorio.addItem(novoDiretorio); if (novoDiretorio.isEmpty()) { throw new RuntimeException(); } else if (novoDiretorio.equals((String) campoDiretorio.getSelectedItem()) { JOptionPane.showMessageDialog(null, "Diretório ja existe, adicione outro!"); } else { JOptionPane.showMessageDialog(null, "Diretório adicionado à lista:\n " + novoDiretorio, "Mensagem", 1); } dispose(); } }
  21. Bem, eu não costumo usar as ferramentas do STS não ... aliás, utilizo o eclipse normal pra isso (e por isso eu não sei explicar se tem forma mais fácil no STS, mas vou explicar como faço sem as vantagens de uma IDE) ... no mais, você está usando Spring Boot ou o Spring 4 ??? Sua configuração você prefere com Java class ou XML (particularmente prefiro com Java class) Bem, você pode usar junto ao Spring a biblioteca do Spring Data JPA, que inclui o Hibernate dentro dele com mais algumas funções que auxiliam nessa parte ... Nesse caso você pode trabalhar com as injeções de dependência, utilizando as anotações @Component e @Service ... Assim, você pode injetar as classes de Serviços e os Componentes no Controller (Eu prefiro separar a lógica da aplicação para os Services e Componentes, deixando o Controller responsável apenas em receber os dados e organizar a apresentação) Assim como no Hibernate ... basta anotar as classes de persistência e na configuração do EntityManager você seta o pacote para o escaneamento das classes (packageScan) ... com isso ele já cria um link entre seu modelo e as tabelas ... Os DAOs são componentes do sistema. Basta anotá-los como @Component e injetá-los onde serão necessários ... lembrando que as classes onde você vai anotá-los tb tem que ser gerenciadas pelo Spring, ou seja, apenas Controllers, Services, Componentes e Classes de Configuração conseguem injetá-los ... Caso use o Spring Data JPA, isso fica ainda mais fácil, utilizando o JPA Repository ...
  22. Certo ... pelo que percebi você está usando Ajax pra fazer essa chamada ... mas você não está mapeando essa rota no seu controller ... faça assim: @Controller public class TarefasController { ... ... //RequestMapping registra no servlet a rota e o método http que esse código irá responder @RequestMapping("/finalizaTarefa", method = RequestMethod.POST) //A anotação RequestBody sinaliza para o Spring capturar a informação do corpo da requisição public String finaliza(@RequestBody Long id, Model model) { JdbcTarefaDao dao = new JdbcTarefaDao(); model.addAttribute("tarefas", dao.buscaPorId(id)); return "tarefa/mostra"; } } Mas acredito que, por usar Ajax, seu objetivo é que os dados que você está buscando sejam setados diretamente pelo javascript ... com isso seria bom usar dessa forma: @Controller public class TarefasController { ... ... @RequestMapping("/finalizaTarefa", method = RequestMethod.POST) //A anotação ResponseBody indica para o Spring que o retorno do método será serializado (como padrão JSON) @ResponseBody public Tarefa finaliza(@RequestBody Long id, Model model) { JdbcTarefaDao dao = new JdbcTarefaDao(); Tarefa tarefa = dao.buscaPorId(id); return tarefa; } } E continuando as dicas, o DAO é um serviço do seu sistema ... com isso você pode anotar ele para que ele possa ser injetado no controller ... assim: @Service public class JdbcTarefaDao { ... } @Controller public class TarefasController { @Autowired private JdbcTarefaDao dao; ... @RequestMapping("/finalizaTarefa", method = RequestMethod.POST) //A anotação ResponseBody indica para o Spring que o retorno do método será serializado (como padrão JSON) @ResponseBody public Tarefa finaliza(@RequestBody Long id, Model model) { Tarefa tarefa = dao.buscaPorId(id); return tarefa; } }
  23. você deve fazer isso no Controller ... você está usando EJB, Spring, Play, ou outra versão de framework??
  24. Inicia no Swing ... aprende como funciona o MVC pra desktop ... entende o conceito da view ... mas não se estenda muito tempo nessa lib ... ai vai pra JFX que é melhor, mas mais pesada
  25. Acredito que o problema seja porque o Id está nulo ... de onde vem esse Id??? por exemplo: @RequestMapping(value="/user/{userId}/invoices", method = RequestMethod.GET) public List<Invoice> listUsersInvoices( @PathVariable("userId") int user, @RequestParam(value = "date", required = false) Date dateOrNull) { ... } @PathVariable e @RequestParam ambos e seus modos de uso. Com isso força o aluno a dar um gas maior

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!