Não sou de comentar, mas parabéns pelo conteúdo. Muito bom mesmo.
@adriano10df8 жыл бұрын
Ola professor Danilo Souza, pra quem esta no inicio igual a min em JSF, suas aulas são espetaculares, Deus te abençoe.
@professordaniloalmeida8 жыл бұрын
Obrigado.
@danbaumann848 жыл бұрын
Muito bom professor! Aprendi mais que na minha pós sobre JSF., sua didática é show!
@viniciussanson99075 жыл бұрын
Ótimas aulas professor, me ajudaram muito a desenvolver meu primeiro crud em Java Web
@ruriknj4 жыл бұрын
Professor Danilo meus parabéns. Nestes 6 meses de estudo sobre o assunto, seus videos foram disparados os melhores, e olha que já vi muitos vídeos. Pena que você tenha parado de faze-los. Se tiver algum treinamento mesmo pago sobre este assunto masi avançado, gostaria de fazê-lo. Obrigado por compartilhar este conhecimento.
@professordaniloalmeida4 жыл бұрын
Estou voltando aos poucos. Estou preparando um curso de desenolvimento web.
@simonepacifico7678 жыл бұрын
Parabéns Professor pela excelente aula! Obrigada!
@tiagocreed4 жыл бұрын
parabéns ! me ajudou bastante, deveria ter a parte de login também.
@fabbiomonteiro828 жыл бұрын
Danilo, as aulas são excelentes, estou esperando as próximas.
@iqueluiz654656 жыл бұрын
muito bom estes videos comecei a desenvolver através destes videos a seis meses, não tinha conhecimento de PrimeFaces. hoje tenho uma duvida como realizo a foco em um p:inputText ao iniciar a pagina e como altero para o próximo teclando enter?
@guilhermeserratemaia83859 жыл бұрын
Sou fã dos seu videos, estou aprendendo bastante. Gostaria de saber se você vai continuar a postar videos aqui, iri me ajudar muito. Muito obrigado, espero que não tenha parado de postar vídeos.
@professordaniloalmeida9 жыл бұрын
Em breve teremos novos vídeos
@juniintv6158 жыл бұрын
Cara Muiito Legal, Salvou meu projeto. :)
@professordaniloalmeida8 жыл бұрын
Espero ter ajudado.
@SuperBrustolin8 жыл бұрын
Parabéns pelo post
@dvigas75475 жыл бұрын
Oi @Danilo Souza Almeida. Vc bem que poderia criar um projeto de exemplo com pelo menos 3 tabelas relacionadas. Estou procurando algum exemplo disso. Vejo alguns usando Hibernate e outros outras coisas, porem a didatica (a explicacao) e legal quanto a sua. E acaba confundindo mais ou deixando de saber algumas coisas importantes. Quando vou tentar fazer o meu acabo ficando preso em algum ponto. Acredito q com sua didatica e juntando tudo que vc fez ai ficaria otimo, um video a mais nessa lista com 3 tabelas relacionadas. Muito obrigado pelos videos e a maneira de explicar, por responder os comentarios e pela educacao. Poderia me dizer se para fazer isso o ideal e usar o Hibernate? Por exemplo se eu quisesse criar mais duas tabelas ai nesse projeto seu e relacionar elas, tenho q mapear, usar Hibernate....? Qual seu conselho? Obrigado desde ja. Abraco, bom domingo.
@professordaniloalmeida5 жыл бұрын
Olá Dvigas, então, estou construindo um roteiro para justamente para ensinar JSF, Hibernate e CDI, a ideia é ensinar justamente a desenvolver algo mais complexo com vários relacionamentos, mas mantendo a praticidade que foram as outras aulas. Com relação ao Hibernate ser ou não o ideal, em geral eu diria que é sim o ideal, pois ele abstraí muitas complexidades de projeto como por exemplo o relacionamento entre tabelas, mas é preciso estudar um pouco para não errar nos relacionamentos. Se não puder esperar as aulas, faça uma pesquisa no Google sobre relacionamentos hibernate que você encontrará muito material explicando. Te vejo em breve. Abraços.
@fabiosoarde7 жыл бұрын
oi Danilo, fiz e refiz suas aulas, excelentes por sinal. Não consigo resolver um problema com o Editar, ao alterar e salvar da mensagem "Erro ao tentar salvar ..."
@pinkz0r6838 жыл бұрын
Boa tarde, Estou com o seguinte erro ao implementar a partir do minuto 30:00 Os itens : getDao().salvar(entidade); , getDao().deletar(entidade); e getDao().buscar(); estão com o seguintes erros/avisos : Type safety: The method salvar(Object) belongs to the raw type CrudDAO. References to generic type CrudDAO should be parameterized Type safety: The method deletar(Object) belongs to the raw type CrudDAO. References to generic type CrudDAO should be parameterized Type safety: The expression of type List needs unchecked conversion to conform to List O que poderia ser?
@professordaniloalmeida8 жыл бұрын
Posta o código do getDao.
@pinkz0r6838 жыл бұрын
public abstract class CrudBean { WARNING do extend CrudDAO acima : CrudDAO is a raw type. References to generic type CrudDAO should be parameterized private String estadoTela = "buscar"; // Inserir, Editar, Buscar private E entidade; private List entidades; public void novo() { entidade = criarNovaEntidade(); mudarParaInserir(); } public void salvar() { try { getDao().salvar(entidade); WARNING DO getDao.salvar: Type safety: The method salvar(Object) belongs to the raw type CrudDAO. References to generic type CrudDAO should be parameterized entidade = criarNovaEntidade(); adicionarMensagem("Salvo com sucesso",FacesMessage.SEVERITY_INFO); mudarParaInserir(); } catch (ErroSistema e) { Logger.getLogger(CrudBean.class.getName()).log(Level.SEVERE, null, e); adicionarMensagem("Salvo com sucesso",FacesMessage.SEVERITY_ERROR); } } public void editar(E entidade){ this.entidade = entidade; mudarParaEditar(); } public void deletar (E entidade) { try { getDao().deletar(entidade); entidades.remove(entidade); adicionarMensagem("Deletado com sucesso",FacesMessage.SEVERITY_INFO); } catch (ErroSistema e) { Logger.getLogger(CrudBean.class.getName()).log(Level.SEVERE, null, e); adicionarMensagem("Salvo com sucesso",FacesMessage.SEVERITY_ERROR); } } public void buscar() { if (isBuscar() == false){ mudarParaBuscar(); return; } try { entidades = getDao().buscar(); if (entidades == null || entidades.size() < 1) { adicionarMensagem("Não existem dados cadastrados",FacesMessage.SEVERITY_WARN); } } catch (ErroSistema e) { Logger.getLogger(CrudBean.class.getName()).log(Level.SEVERE, null, e); adicionarMensagem("Salvo com sucesso",FacesMessage.SEVERITY_ERROR); } } public void adicionarMensagem(String mensagem, FacesMessage.Severity tipoErro) { FacesMessage fm = new FacesMessage(tipoErro, mensagem, null); FacesContext.getCurrentInstance().addMessage(null, fm); } // get and set public E getEntidade() { return entidade; } public void setEntidade(E entidade) { this.entidade = entidade; } public List getEntidades() { return entidades; } public void setEntidades(List entidades) { this.entidades = entidades; } //Criar os métodos nas classes bean public abstract D getDao(); public abstract E criarNovaEntidade(); //Controle de tela public boolean isInserir() { return "inseri".equals(estadoTela); } public boolean isEditar() { return "edita".equals(estadoTela); } public boolean isBuscar() { return "busca".equals(estadoTela); } public void mudarParaInserir() { estadoTela = "inserir"; } public void mudarParaEditar() { estadoTela = "editar"; } public void mudarParaBuscar() { estadoTela = "buscar"; } }
@professordaniloalmeida8 жыл бұрын
Coloque o getDAO da classe que você extende do crud.
@pinkz0r6838 жыл бұрын
Boa tarde, a classe que é extend no CrudBean é o CrudDAO: import java.util.List; import br.com.carboscore.util.exception.ErroSistema; public interface CrudDAO { //E representa minha entidade public void salvar(E entidade) throws ErroSistema; public void deletar (E entidade) throws ErroSistema; public List buscar()throws ErroSistema; } No CrudBean tem o seguinte método: //Criar os métodos nas classes bean public abstract D getDao(); public abstract E criarNovaEntidade(); No CrudBean esses são as chamadas que apresentam erro, amos já com try e catch: getDao().salvar(entidade) , getDao().deletar(entidade); , entidades = getDao().buscar();
@professordaniloalmeida8 жыл бұрын
Me mande o projeto por email que eu olho aqui. professordaniloalmeida@gmail.com
@euclidesjcc8 жыл бұрын
Danilo neste projeto eu implementei um botão cancelar, para cancelar a transação.
@carlosantoliv7 жыл бұрын
Aulas muito boas e didáticas. Só não entendi uma coisa: prq cadastro de usuário se não existe tela de login e senha?
@professordaniloalmeida7 жыл бұрын
Carlos Antonio obrigado pelo feedback, a ideia era continuar com as aulas, mas ocorreram várias coisas que me obrigaram a parar, mas pretendo continuar no futuro.
@carlosantoliv7 жыл бұрын
Opa! blz..rs... é que não tinha entendido mesmo. Mas sei como é a gente querer continuar e o tempo não ser muito parceiro. As tuas aulas são básicas-avançadas, portanto, tem um certo diferencial de outras aulas. E também são muito, mas muuito produtivas. Pessoas iniciantes, como eu, precisam delas. Implementando a parte de login, na minha opinião, acho que estaria completo o propósito. Só faltou a tela de login, visto que vc já criou o cadastro de usuários. Para o básico, vc fez até um pouco mais além. Abandona a gente não!rs Quando puder, tente implementar a tela de login. OBS: Confesso que fiquei muito curioso como você abordaria quando tivesse que cadastrar o "id" do usuário em outra tabela. Por exemplo, Imagine que eu tenha que cadastrar carros, mas tendo que salvar o id do usuário que efetuou o cadastro. E a partir de uma outra tela, eu buscaria os carros por id de usuário. Mas isto seria um extra. Sim, você abordou tão bem e tudo bem separado, que fiquei muito curioso pra saber como isso seria feito sob a tua ótica. Eu já vi muitas video-aulas de autores distintos. Posso te afirmar que vc abordou muito bem o tema com êxito! Muito bom mesmo! Abço, Danilo!
@mariapaulagomes27423 жыл бұрын
alguém tem o código desse projeto?
@professordaniloalmeida3 жыл бұрын
Segue a última versão do projeto: drive.google.com/file/d/0B4UAghnYjEQNby1lc2pFTE1Eemc/view?usp=sharing&resourcekey=0--vvDKOTTzBi4gfiI-2htRg
@mariapaulagomes27423 жыл бұрын
@@professordaniloalmeida Muito obrigada! Me ajudou bastante 😃
@jorgeleandrosp6 жыл бұрын
Olá, muito obrigado pela aula. Estou tomando um erro ao usar o método Salvar, da classe UsuarioDAO(Estou criando um CRUD de usuários, tomando como base o de Carros que está sendo apresentado nas aulas). Para a classe, recebo o seguinte erro: "UsuarioDAO is not abstract and does not override abstract method salvar(usuario) in CrudDao" Já tentei várias maneiras e não consegui resolver o problema. por favor, me ajude. public class UsuarioDAO implements CrudDao{ @Override public void Salvar(Usuario usuario) throws ErroSistema{ try { Connection conexao = FabricaConexao.getConexao(); PreparedStatement ps; if(usuario.getCodigo() == null){ ps = conexao.prepareStatement("INSERT INTO `biblioteca`.`tb_usuario`(`usu_cim`, `usu_nome`) VALUES (?, ?);"); }else{ ps = conexao.prepareStatement("update tb_usuario set usu_cim=?, usu_nome=? where usu_codigo=?"); ps.setInt(3, usuario.getCodigo()); } ps.setInt(1, usuario.getCim()); ps.setString(2, usuario.getNome()); ps.execute(); FabricaConexao.fecharConexao(); } catch (SQLException ex) { throw new ErroSistema("Erro ao tentar salvar o usuário", ex) ; } }
@professordaniloalmeida6 жыл бұрын
Não sei bem, mas confere a questão de letra maiúscula e minúscula, aparentemente ele diz que não existe método salvar(usuario) no CrudDao, pode ser algum problema de construção do CrudDao. Se não conseguir pode me enviar um email com o código que eu olho. professordaniloalmeida@gmail.com
@Ai3065fS4 жыл бұрын
Professor Danilo, Muito obrigado por sua didática nas vídeo aulas, fica muito fácil o aprendizado, principalmente com os erros na execução, esclarece e tira o receio pra quem é iniciante e tem muitas duvidas. Alinhado a seu ensino uso também o ensinamento do Gustavo Guanabara, vocês são realmente PROFESSORES por a gente entendi. Só preciso agora é meter a cara mesmo e fazer e testar e crescer com o conhecimento. Obrigado, e continuarei a assistir suas aulas; Abraço. Flaubert Santos jflaubert38@gmail.com
@professordaniloalmeida4 жыл бұрын
Estou gravando novas aulas para atualizar este curso, será totalmente remodelado ao desenvolvimento de um software com JSF. Agurde em breve.
@Ai3065fS4 жыл бұрын
@@professordaniloalmeida sem dúvidas que ficarei ansioso pra receber o conteúdo professor; sei que será absorvido pela sua didática show. 😉
@wesleyfelipe85267 жыл бұрын
Ola professor fiquei meio perdido nessa aula !! sera que pode me ajudar por favor o que seria essa generics ? e essa entidade e entidades . eles substituiram o carro e o carros por que ? e tambem aquela classe carrobean extendendo crud beane carro dao o que seria ela :: flow professor
@professordaniloalmeida7 жыл бұрын
O gernerics é uma forma implícita de definir o tipo da variável, no caso eu falo que entidade é uma variável do tipo E, mas quem define o tipo da variável é a implementação da classe, como ocorre na variável do tipo List do java. CrudBean é uma classe Crud que comunica diretamente com o XHTML e as classes DAO são responsáveis pelo acesso a dados (Data Access Object). É uma forma de organizar o projeto em camadas.
@marquinmpfs9 жыл бұрын
Olá Danilo Souza, não consegui abrir a página do Gerenciar Usuario... dá o erro abaixo: Property 'busca' not writable on type br.edu.ifnmg.carros.bean.UsuarioBean
@professordaniloalmeida9 жыл бұрын
+Marquin Ferreira Olá, tente ver se você criou o método "isBusca()" ou "isBuscar()" aparentemente o erro pode ser neste método.
@xcreatorminigames62276 жыл бұрын
Grande professor! Venho seguindo seu tutorial e tem dado tudo certo! Mas agora deu um erro aqui que não estou conseguindo resolver, ja tentei encontrar mesmo! O que acontece é que no XHTML ele não acha o conteúdo do campo "entidade", e por incrivel que pareça não está encontrando a classe CarroBean no processo de execução. Um dos erros é esse : "Uncompilable source code - cannot find symbol symbol: class SessionScoped at xcreator.bean.CarroBean.(CarroBean.java:8)" mas me parece tudo certo, se puder lhe envio o código zipado pra você me dar uma luz se for possível. Obrigado!
@professordaniloalmeida6 жыл бұрын
Aparentemente o erro é na Classe CarroBean no elemento SessionScoped, verifique se você importou a anotação do javax.faces.bean.SessionScoped. Qualquer coisa mande mensagem.
@xcreatorminigames62276 жыл бұрын
Pois é, fiz uma revisão de todos os códigos, e esta tudo ok as importações, até baixei sua versão para comparar mas não encontrei nada que pudesse causar o problema. O mais estranho é que também não é problema da instalação dos pacotes, pq esta funcionando tudo ok até a aula anterior. Uma coisa que me pergunto, como que XHTML sabe que o "elemento" que é genérico, vai ser da classe tal depois ? Não teria que incluir alguma tag pra informar? E muito obrigado!
@professordaniloalmeida6 жыл бұрын
Com relação ao elemento genérico ele não sabe, mas o que ele sabe é que se você utiliza o Bean Genérico e você passa por exemplo carroBean, se carroBean herda o Bean Genérico, além de ser carroBean ele também é o Bean Genérico, como diz o ditado, filho de peixe peixinho é. CarroBean não deixou de ser um Bean Genérico, ele é um Bean Genérico com Mais funções. Com relação ao código se quiser me enviar eu olho para você. professordaniloalmeida@gmail.com.
@erichhubner8 жыл бұрын
Muito bom! Onde tem o fonte desta aula pra download?
@professordaniloalmeida8 жыл бұрын
Pela manhã eu posso o link.
@arthur636098 жыл бұрын
Muito bom! passa o link ai..
@professordaniloalmeida8 жыл бұрын
Desculpe a demora, segue o link goo.gl/Ma82Rg
@arthur636098 жыл бұрын
obrigado!
@CorruptionManX7 жыл бұрын
Aula muito boa, mas em todo lugar usam frameworks. Será que em lugar algum fazem o código do zero? Professor quer um código sem uso de facilitadores e eu não acho em lugar algum.
@professordaniloalmeida7 жыл бұрын
Em geral não usam pois com hibernate é melhor, principalmente em grandes sistemas, mas em caso de aplicações pequenas acontece de usar sim. A afirmação depois da pergunta eu não entendi.
@CorruptionManX7 жыл бұрын
Danilo Souza Almeida é que o professor quer um CRUD livre de frameworks pois ele afirma que deve se aprender os conceitos básicos e depois sim fazer uso frameworks (que ele se refere como atalhos ou facilitadores). O problema é que nao tenho encontrado esse conteúdo e ele também não tem dado assistência.
@aprendizfivem9 жыл бұрын
Like + inscrição.
@gfsouza20087 жыл бұрын
Acompanhei até a aula 7, hoje me perdi.
@moisesferreiradoprado89805 жыл бұрын
Aula não e para iniciante já começa com muita coisa pronta.
@professordaniloalmeida5 жыл бұрын
Preparei estas aulas para ajudar alguns alunos que precisavam fazer TCC com muita rapidez.