Ir ao conteúdo
  • Cadastre-se

psykotico

Membro Pleno
  • Posts

    303
  • Cadastrado em

  • Última visita

  1. Eu não encontrei a fonte na Loja da Pichau, mas encontrei na Terabyte ... Aí o orçamento ficou assim: Processador AMD Ryzen 7 5700G 3.8GHz (4.6GHz Turbo), 8-Cores 16-Threads, Cooler Wraith Stealth, AM4, Com vídeo integrado, 100-100000263BOX (x1) placa-mãe MSI B550M PRO-VDH, Chipset B550, AMD AM4, mATX, DDR4 (x1) Memória DDR4 Geil Orion RGB, 8GB, 3200MHz, Red, GAOSR48GB3200C16BSC (x2) SSD Adata Ultimate SU650 240GB , M.2 2280, Leitura 550MBs e Gravação 500MBs, ASU650NS38-240GT-C (x1) HD Western Digital Caviar Blue 1TB, Sata III, 7200RPM, 64MB, WD10EZEX (x1) Cooler para Processador DeepCool Gammaxx 400 V2, Red, 120mm, Intel-AMD, DP-MCH4-GMX400V2-RD (x1) Fonte XPG, Pylon, 550W, 80 Plus Bronze, PFC Ativo (x1) Gabinete Gamer Gamemax Revolt 3606, RGB, Mid Tower, Vidro Temperado, Black, Sem Fonte, Com 4 Fans (x1) (Nesse não precisou das Ventoinhas porque já vem na Torre, e eu diminuí o SSD para 240GB) Total: R$ 4.756,51
  2. @Shaman93 Só umas dúvidas. Water Coler não seria melhor na refrigeração?? Faz anos que não vejo isso então estou bem por fora. Outra dúvida: a fonte 450W, caso futuramente eu adicione uma GPU, não ficaria pesada para essa fonte? Eu pensei inicialmente em uma de 500W mas não achei no site quando estava montando a config
  3. Pessoal, bom dia! Estou montando uma configuração pro meu enteado, com foco em Design Gráfico e Design 3D (apenas o curso por enquanto), e claro, alguns jogos como CS, Fortnite, League of Legends, essas coisas. Meu orçamento é de R$ 5.000,00 no máximo. Então montei a seguinte configuração na Pichau, vendo alguns vídeos no youtube: Processador AMD Ryzen 7 5700G, 8-Core, 16-Threads, 3.8GHz (4.6GHz Turbo), Cache 20MB, AM4, 100-100000263BOX placa-mãe ASUS Prime B450M-GAMING/BR DDR4 Socket AM4 Chipset AMD B450 Memoria Team Group T-Force Vulcan Pichau, 16GB (2x8), DDR4, 3200MHz, C16, Vermelha, TLPRD48G3200HC16F01 SSD Kingston NV1, 500GB, M.2 2280, PCIe NVMe, Leitura 2100 MB/s, gravação 1700 MB/s, SNVS/500G HD Toshiba P300 1TB 3.5" Sata III 6GB/s, HDWD110UZSVA Water Cooler KWG Crater E1-120R RGB Kit Ventoinhas TGT Mirage, 3x120mm, Led RGB, TGT-MRG120-RGB3 Fonte Corsair VS Series VS600 80 Plus White 600W, CP-9020224-BR Gabinete Gamer Aigo DarkFlash Aquarius Mesh Lateral Acrilico Preto Total: R$ 4.815,04 A ideia é pegar um PC básico por enquanto e mais pra frente, se for necessário, investir em uma GPU melhor.
  4. Ok, Desculpe falha minha ... Por estar trabalhando muito com JSON, acabei passando a anotação errada (Sim, caso você queira trabalhar com AJAX, essa seria a anotação correta) .. Desculpe mesmo. vamos a duas soluçoes: A primeira é você anotar com @RequestParam e pegar atributo por atributo. Não é tão simples, mas talvez em casos mais específicos te ajude: @RequestMapping(value="/", method=RequestMethod.POST) public String form(@RequestParam("nome") String nome, @RequestParam("email") String email, @RequestParam("telefone") String telefone, @RequestParam("mensagem") String mensagem) { Contato contato = new Contato(); contato.setNome(nome); contato.setEmail(email); contato.setMensagem(mensagem); contato.set cr.save(contato); return "redirect:/Index"; } A segunda, e acredito que seja a que mais se adeque ao que você deseja (O Thymeleaf automaticamente seta o ModelAttribute quando você utiliza th:object="${contato}") : @RequestMapping(value="/", method=RequestMethod.POST) public String form(@ModelAttribute Contato contato) { cr.save(contato); return "redirect:/Index"; }
  5. Opa ... No seu Controller, falta anotar o parâmetro para o Spring entender que esse valor está relacionado ao request: @RequestMapping(value="/", method=RequestMethod.POST) public String form(@RequestBody Contato contato) { cr.save(contato); return "redirect:/Index"; }
  6. Sim ... Na verdade como você disse que estava aprendendo, achei que trabalhar apenas com valores simples na view e no MB seria mais tranquilo pra você entender. Mas se já está abstraindo isso, perfeito, é assim mesmo
  7. No form, você está mostrando o valor do ID e o nome da pessoa. você pode utilizar um DOM Input hidden pra fazer essa parte e poder recuperar o Id da pessoa pelo menos. <h:inputHidden value="#{user.id}" id="hiddenId" />
  8. O velho caso do Relacionamento Bidirecional ... é terrível e gera vários erros mesmo ... Não é elegante fazer isso, mas meu sono não me deixa pensar em algo melhor ... public void addTelefone(Pessoa pessoa, Telefone telefone) { try { sessao = HibernateUtil.getSessionFactory().openSession(); if (pessoa.getTelefones() == null) { pessoa.setTelefones(new ArrayList<Telefone>()); } pessoa.getTelefones().add(telefone); telefone.setPessoa(pessoa); sessao.save(telefone); transacao.commit(); } catch (Exception e) { e.printStackTrace(); } finally { sessao.close(); } } O Problema do bidirecional é que ele tem problemas para entender que quando você seta um, implicitamente você está setando o outro ... Forçando dessa forma, você garante que o mesmo objeto está sendo setado nos dois lados ...
  9. Exatamente como disse o @Boko Moko. Mas é mais interessante você estudar sobre encapsulamento, na Orientação a Objetos. Assim você começa a entender sobre atributos, métodos e suas características.
  10. Existem várias formas. Acredito que a forma mais simples de você fazer isso é inserindo cada linha em uma Lista de Strings, como abaixo: String linha; List<String> lista = new ArrayList<String>() while( (linha = reader.readLine()) != null ){ lista.add(linha); } E depois disso utilizar algum algorítmo de ordenação para ordenar a lista. PORÉM: Se forem números, tome cuidado pos ele tende a ordenar Strings por caractere, o que resulta em algo como [1,10,11,12 ... 2,20,21 ...] ... Assim, teria que se atentar a essa situação ... Outra forma é utilizar a Biblioteca Collections ... Collections.sort(list, comparator); Nesse caso, para evitar a Situação de ordem de números, você teria que implementar a Classe comparator para indicar o maior e menor.
  11. É que você tá chamando o método com o seguinte parâmetro: logindao logi = new logindao(); //... logi.Alterar(login.getSenha()); ou seja, você tá passando uma String Senha, para um método e lá você está aguardando que o Objeto seja um LoginBean acredito que deva funcionar se você alterar a chamada do método para: logi.Alterar(login);
  12. Isso exato ... assim você não precisa ficar buscando o código antes de fazer o update e faz tudo num processo apenas ... outra coisa interessante é validar pra ver se ele preencheu o campo senha ... só fazer um !senha.isEmpty() assim ele evita salvar logins com senha vazia ....
  13. Não necessariamente. Veja, se (e exclusivamente se) o campo login for único no banco (ou seja, só vai existir valores diferentes) então qualquer pesquisa por login só vai retornar um campo, correto ... Com isso, na sua pesquisa: String sql = "Select * from usuario where login = ? "; Já faz exatamente o que eu quis dizer. Com isso, seu update ficaria com String sql = "update usuario set senha = ? where login = ?"; Da forma que você está fazendo, dá a chance do usuário mudar inclusive o campo login. Com isso eu posso colocar TODOS os logins da tabela com o mesmo nome, e depois disso, o sistema não conseguirá identificar qual é qual. Exemplo: ++++++++++++++++++++++++++++++++++++++++ | codigo | login | senha | +--------+---------------+-------------+ | 1 | usuario1 | umasenha | | 2 | outrouser | outrasenha | | 3 | maisum | maisoutra | ++++++++++++++++++++++++++++++++++++++++ Se eu no primeiro momento fizer login = "outrouser" terei: Select * from usuario where login = 'outrouser'; o que retornaria o código 2 para a tela. Mas, se depois de atualizar o form eu completar com as informações login = "maisum" e senha = "blabla", eu tenho: update usuario set login = 'maisum',senha = 'blabla' where codigo = 2 O que me resulta em uma tabela assim: ++++++++++++++++++++++++++++++++++++++++ | codigo | login | senha | +--------+---------------+-------------+ | 1 | usuario1 | umasenha | | 2 | maisum | blabla | | 3 | maisum | maisoutra | ++++++++++++++++++++++++++++++++++++++++ E com isso, como seu sistema localizará o usuário "maisum" correto? Porém, se você utilizar a constraint unique para o campo login, nunca terá esse problema de duplicação na coluna, e com isso, você já poderá fazer o update da forma que eu expliquei ali em cima. PS.: Não sei se é o caso, mas por boa prática de segurança, geralmente alteração de senha só é realizada em uma console de admin, ou após o usuário estar logado. Se ele está logado, basta você manter os dados do usuário em um objeto estático (ou um Bean, caso você utilize Injeção de Dependência) e buscar os valores antes do update, só solicitando a senha. Se for numa console admin, como você já listou todos os usuários, você novamente já tem os valores de login na tela de listagem, e pode reaproveitar inclusive o mesmo form para update de senha.
  14. Tente com Object result = consulta.getSingleResult(); return result == null; você está solicitando para ele executar uma ação de update no banco, mas é uma query simples ... como você sempre tem o objeto consulta instanciado, ele nunca vai dar false ...
  15. Acho que esse tópico aqui vai te ajudar: https://stackoverflow.com/questions/8769336/drag-image-from-browser-to-drop-onto-jlabel

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...