Acompanhamento
ola, parabens pela excelente didatica,
Gostaria dos fontes dos seus cursos para acompamento das aulas:
Introdução a JavaServer FacesAplicação Completa Utilizando HibernateIntrodução do Desenvolvimento Java para Web: JSP, JSTL e SevletsDesvendando Java EE 5Desenvolvendo uma Aplicação Completa com Java EE 5
Arquimedes Soares
Respostas
Dyego Carmo
04/12/2009
Poderia me fornecer o seu email ?
Arquimedes Soares
04/12/2009
Dyego Carmo
04/12/2009
Arquimedes Soares
04/12/2009
Arquimedes Soares
04/12/2009
Dyego Carmo
04/12/2009
Arquimedes Soares
04/12/2009
Curso Online
Introdução a JavaServer Faces
Este curso apresenta o desenvolvimento de aplicações Java utilizando o JavaServer Faces. Alguns dos assuntos que serão discutidos durante o curso são: conceitos introdutórios, componentes core, managedbeans, validadores, validadores personalizados, conversores de dados, formulários mestre-detalhe e propriedade valueChangeListener.
Gratuidade neste curso:
Tipo Total de itens Info Vídeo: 21 21 videos são gratuitos para assinantes Java Magazine
Dyego Carmo
04/12/2009
:P
Valeu !
Arquimedes Soares
04/12/2009
Arquimedes Soares
04/12/2009
Arquimedes Soares
04/12/2009
Dyego Carmo
04/12/2009
Arquimedes Soares
04/12/2009
é o arquivo do curso introdução a JSF com as classes Sales, Product Login, com seus respectivos daos, managebeans, e jsp(jsf) com os TODO GRUD possivel que aparece em seus videos
Arquimedes Soares
04/12/2009
é o arquivo do curso introdução a JSF com as classes Sales, Product Login, com seus respectivos daos, managebeans, e jsp(jsf) com os GRUD possivel que aparece em seus videos
Dyego Carmo
04/12/2009
Enviei denovo
Arquimedes Soares
04/12/2009
sao os codigos desses videos DO curso de introdução a JSF, nome do curso é Curso Online
Introdução a JavaServer Faces
Este curso apresenta o desenvolvimento de aplicações Java utilizando o JavaServer Faces. Alguns dos assuntos que serão discutidos durante o curso são: conceitos introdutórios, componentes core, managedbeans, validadores, validadores personalizados, conversores de dados, formulários mestre-detalhe e propriedade valueChangeListener.
Gratuidade neste curso:
Tipo Total de itens Info Vídeo: 21 21 videos são gratuitos para assinantes Java Magazine
referente aos codigos dos videos
Criando uma Aplicação Completa - I (introdução) Vídeo 11) Introdução Descrição: Nesta aula damos início a uma nova série, abordando a criação de uma aplicação completa utilizando a tecnologia JavaServer Faces 1.2. | [Marcar este item como lido/assistido]Construindo uma aplicação completa - II (POJO)
Vídeo 12) POJO Descrição: Nesta aula iniciamos a criação da regra de negocio, começamos por criar os POJOS e também o acesso ao banco de dados por uma classe comum. | [Marcar este item como lido/assistido] Construindo uma aplicação completa - III (DAOs)
Vídeo 13) Parte 1 Descrição: Nesta aula iniciamos a criação da regra de negocio, dos DAOs que fazem parte do coração da aplicação. | [Marcar este item como lido/assistido]
Vídeo 14) Parte 2 Descrição: Nesta vídeo-aula criamos o DAO de Vendas. | [Marcar este item como lido/assistido] Construindo uma aplicação completa - IV (Testes Automatizados)
Vídeo 15) Testes Automatizados Descrição: Nesta vídeo aula veremos Testes Automatizados. | [Marcar este item como lido/assistido] Construindo uma aplicação completa - V (Backing Beans)
Vídeo 16) Backing Beans Descrição: Nesta aula damos inicio a criação dos Backing Beans. | Este post foi marcado como lido/assistido [Desmarcar como lido/assistido] Construindo uma aplicação completa - VI (Criando páginas)
Vídeo 17) Parte 1 Descrição: Nesta vídeo aula damos inicio a codificação das páginas JSF, a tão esperada aula de codificação de interface foi iniciada. | [Marcar este item como lido/assistido]
Vídeo 18) Parte 2 Descrição: Nesta vídeo-aula realizamos a edição de nossos produtos bem como terminamos de colocar a parte de "produtos" funcionando por completo. | [Marcar este item como lido/assistido]
Vídeo 19) Parte 3 Descrição: Finalizamos aqui nesta vídeo-aula a criação das páginas JSF. | [Marcar este item como lido/assistido] Construindo uma aplicação completa - VII (Criando páginas)
Vídeo 20) Criando páginas Descrição: Esta aula dedicamos especialmente a colocação de CONVERSORES e VALIDADORES em todas nossas páginas JSF. | [Marcar este item como lido/assistido] Construindo uma aplicação completa - VIII (Acrescentando segurança)
Vídeo 21) Acrescentando segurança Descrição: Nesta vídeo aula colocamos a parte de segurança no login de nossa aplicação. | [Marcar este item como lido/assistido]
Dyego Carmo
04/12/2009
Mas gostaria de poder ser util em suas duvidas !!!
Arquimedes Soares
04/12/2009
CREATE TABLE revista.conteudo
(
cont_id serial,
cont_titulo character varying(30),
cont_arquivo text, <-------------------------------
cont_resumo text,
cont_abstract text,
cont_dt_cadastro date,
cont_dt_defesa date,
tico_id integer,
usua_id integer,
aval_id integer
) ;
EU ja tenho o metodo de salvar pesquisar listar conteudo estar faltando somente implementar o envior de arquivo em formato PDF, e recuperação do arquivo em uma listagem ligado ao ID de conteudo, juntamente com a ALTERAÇÃO E EXCLUSÃO, e que tenha um link para o usuario poder fazer o DOWNLOAD DESSE ARQUIVO,
TERIA COMO VOCE implementar nesse MyFirstCompleteJSFapp, um exemplo, ou voce fazer um CRUD dessa entidade CONTEUDO, para servir de exemplo.
Dyego Carmo
04/12/2009
Um exemplo de como fazer este UPLOAD pode ser obtido aqui:
https://www.devmedia.com.br/articles/viewcomp.asp?comp=9403
Obrigado !
Arquimedes Soares
04/12/2009
porem nesse exemplo https://www.devmedia.com.br/articles/viewcomp.asp?comp=9403, nao estar relacionado com uma tabela, e nao tem exemplo de de listagem de com downlad do arquivo, gostaria de saber se teria como voce fazer essa implementação dos dados passados abaixo?
Arquimedes Soares
04/12/2009
Dyego Carmo
04/12/2009
Em uma manutenção eu acabei apagando...
O exemploq ue te passei ensina como enviar um arquivo via UPLOAD em JSF
Para enviar para o banco voce usa SQL direto:
Connection cx = DriverManager....
PreparedStatement pst = cx.createPreparedStatement("UPDATE conteudo set con_arquivo = ? where id = ?");
pst.setObject(1,arquivoConvertidoEmArrayDeBytes);
pst.setObject(2,idDoConteudo);
pst.execute();
Pronto.. o conteudo vai para o arquivo !!!
Voce ser que eu codifique o exemplo completo ?
Arquimedes Soares
04/12/2009
Arquimedes Soares
04/12/2009
CREATE TABLE conteudo
(
cont_id integer NOT NULL,
cont_titulo character varying(30),
cont_arquivo text,<------------------------------- campo para upload arquivo
aval_id integer
)
Dyego Carmo
04/12/2009
Arquimedes Soares
04/12/2009
Devmedia
04/12/2009
o Suporte DevMedia não desenvolve códigos, apenas indicamos a melhor forma de como proceder com a dúvida.
Precisamos que nos apresente um código que vc tenha tentado fazer para que possamos lhe dar o direção correta.
Ficamos no aguardo.
Arquimedes Soares
04/12/2009
package br.com.revista.bean;
import java.util.Date;
import java.util.List;
/**
*
* @author Arquimedes
*/
public class Conteudo {
private Integer id;
private String titulo;
private String arquivo;
private String resumo;
private String abstracte;
private Date dtCadastro;
private Date dtDefesa;
private Avaliacao avalicao;
private TipoConteudo tipoConteudo;
private Usuario usuario;
private List<AreaConhecimento> areasConhecimento;
private List<Autores> autores;
public Conteudo(){
}
public Conteudo(Integer id, String titulo, String arquivo, String resumo, String abstracte, Date dtCadastro, Date dtDefesa, Avaliacao avalicao, TipoConteudo tipoConteudo, Usuario usuario) {
this.id = id;
this.titulo = titulo;
this.arquivo = arquivo;
this.resumo = resumo;
this.abstracte = abstracte;
this.dtCadastro = dtCadastro;
this.dtDefesa = dtDefesa;
this.avalicao = avalicao;
this.tipoConteudo = tipoConteudo;
this.usuario = usuario;
}
public Conteudo(Integer id, String titulo, String arquivo, String resumo, String abstracte, Date dtCadastro, Date dtDefesa, Avaliacao avalicao, TipoConteudo tipoConteudo, Usuario usuario, List<AreaConhecimento> areasConhecimento, List<Autores> autores) {
this.id = id;
this.titulo = titulo;
this.arquivo = arquivo;
this.resumo = resumo;
this.abstracte = abstracte;
this.dtCadastro = dtCadastro;
this.dtDefesa = dtDefesa;
this.avalicao = avalicao;
this.tipoConteudo = tipoConteudo;
this.usuario = usuario;
this.areasConhecimento = areasConhecimento;
this.autores = autores;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getTitulo() {
return titulo;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
public String getArquivo() {
return arquivo;
}
public void setArquivo(String arquivo) {
this.arquivo = arquivo;
}
public String getResumo() {
return resumo;
}
public void setResumo(String resumo) {
this.resumo = resumo;
}
public String getAbstracte() {
return abstracte;
}
public void setAbstracte(String abstracte) {
this.abstracte = abstracte;
}
public Date getDtCadastro() {
return dtCadastro;
}
public void setDtCadastro(Date dtCadastro) {
this.dtCadastro = dtCadastro;
}
public Date getDtDefesa() {
return dtDefesa;
}
public void setDtDefesa(Date dtDefesa) {
this.dtDefesa = dtDefesa;
}
public Avaliacao getAvalicao() {
return avalicao;
}
public void setAvalicao(Avaliacao avalicao) {
this.avalicao = avalicao;
}
public TipoConteudo getTipoConteudo() {
return tipoConteudo;
}
public void setTipoConteudo(TipoConteudo tipoConteudo) {
this.tipoConteudo = tipoConteudo;
}
public Usuario getUsuario() {
return usuario;
}
public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}
public List<AreaConhecimento> getAreasConhecimento() {
return areasConhecimento;
}
public void setAreasConhecimento(List<AreaConhecimento> areasConhecimento) {
this.areasConhecimento = areasConhecimento;
}
public List<Autores> getAutores() {
return autores;
}
public void setAutores(List<Autores> autores) {
this.autores = autores;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Conteudo other = (Conteudo) obj;
if (this.id != other.id && (this.id == null || !this.id.equals(other.id))) {
return false;
}
if ((this.titulo == null) ? (other.titulo != null) : !this.titulo.equals(other.titulo)) {
return false;
}
return true;
}
@Override
public int hashCode() {
int hash = 3;
hash = 31 * hash + (this.id != null ? this.id.hashCode() : 0);
hash = 31 * hash + (this.titulo != null ? this.titulo.hashCode() : 0);
return hash;
}
}
Arquimedes Soares
04/12/2009
package br.com.revista.dao;
import br.com.revista.bean.AreaConhecimento;
import br.com.revista.bean.Autores;
import br.com.revista.bean.Avaliacao;
import br.com.revista.bean.Conteudo;
import br.com.revista.bean.TipoConteudo;
import br.com.revista.bean.Usuario;
import br.com.revista.connectionFactory.ConnectionFactory;
import br.com.revista.util.Conversor;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class ConteudoDao implements ConteudoInterface {
private Connection conn;
public ConteudoDao() throws Exception {
try {
this.conn = ConnectionFactory.getConnection();
} catch (Exception e) {
throw new Exception("Erro: " +
"\n" + e.getMessage());
}
}
public void salvarConteudo(Conteudo conteudo) throws Exception {
PreparedStatement statement = null;
Connection conn = null;
if (conteudo == null) {
throw new Exception("O valor passado não pode ser nulo");
}
try {
this.conn = ConnectionFactory.getConnection();
PreparedStatement stmt = this.conn.prepareStatement(
"select nextval('revista.conteudo_cont_id_seq');");
ResultSet rs = stmt.executeQuery();
int id = 0;
while (rs.next()) {
id = rs.getInt(1);
}
stmt.close();
stmt = null;
stmt = this.conn.prepareStatement(
"insert into revista.conteudo (cont_id, cont_titulo, cont_arquivo, " +
"cont_resumo," + " cont_abstract, " + "cont_dt_Cadastro," + " " +
"cont_dt_Defesa, tico_id, aval_id) values (?,?,?,?,?,?,?,?,?)");
stmt.setInt(1, id);
stmt.setString(2, conteudo.getTitulo());
stmt.setString(3, conteudo.getArquivo());
stmt.setString(4, conteudo.getResumo());
stmt.setString(5, conteudo.getAbstracte());
stmt.setDate(6, Conversor.DateUtilToDateSQL(conteudo.getDtCadastro()));
stmt.setDate(7, Conversor.DateUtilToDateSQL(conteudo.getDtDefesa()));
stmt.setInt(8, conteudo.getTipoConteudo().getId());
stmt.setInt(9, conteudo.getAvalicao().getId());
stmt.execute();
stmt.close();
stmt = null;
for (AreaConhecimento ac : conteudo.getAreasConhecimento()) {
stmt = this.conn.prepareStatement("insert into revista.conteudo_area (cont_id, arco_id) values (?,?)");
stmt.setInt(1, id);
stmt.setInt(2, ac.getId());
stmt.execute();
stmt.close();
}
stmt = null;
for (Autores at : conteudo.getAutores()) {
stmt = this.conn.prepareStatement("insert into revista.autores_conteudo(auto_id, cont_id) values (?,?)");
stmt.setInt(1, at.getId());
stmt.setInt(2, id);
stmt.execute();
stmt.close();
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
ConnectionFactory.closeConnection(conn, statement);
}
}
public boolean atualizarConteudo(Conteudo conteudo) throws Exception {
PreparedStatement ps = null;
Connection conn = null;
if (conteudo == null) {
throw new Exception("O valor passado não pode ser nulo");
}
try {
String SQL = "UPDATE revista_eletronica.conteudo SET cont_titulo=?, cont_arquivo=?, cont_resumo=?, " +
"cont_abstract=?, cont_dtCadastro=?, cont_dtDefesa=?, tico_id=?, aval_id=? where cont_id=?";
conn = this.conn;
ps = conn.prepareStatement(SQL);
ps.setString(1, conteudo.getTitulo());
ps.setString(2, conteudo.getArquivo());
ps.setString(3, conteudo.getResumo());
ps.setString(4, conteudo.getAbstracte());
ps.setDate(5, Conversor.DateUtilToDateSQL(conteudo.getDtCadastro()));
ps.setDate(6, Conversor.DateUtilToDateSQL(conteudo.getDtDefesa()));
ps.setInt(7, conteudo.getTipoConteudo().getId());
ps.setInt(8, conteudo.getAvalicao().getId());
boolean retorno = true;
return retorno = ps.execute();
} catch (SQLException sqle) {
throw new Exception("Erro ao atualizar dados: " + sqle);
} finally {
ConnectionFactory.closeConnection(conn, ps);
}
}
public List<Conteudo> getListarConteudo(String cl) throws Exception {
try {
PreparedStatement stmt = this.conn.prepareStatement("select * from revista.conteudo where cont_Titulo ilike ?");
stmt.setString(1, "%" + cl + "%");
ResultSet rs = stmt.executeQuery();
ArrayList<Conteudo> conteudo = new ArrayList<Conteudo>();
while (rs.next()) {
Conteudo c = new Conteudo();
c.setId(rs.getInt("cont_id"));
c.setTitulo(rs.getString("cont_titulo"));
c.setArquivo(rs.getString("cont_arquivo"));
c.setResumo(rs.getString("cont_resumo"));
c.setAbstracte(rs.getString("cont_abstract"));
c.setDtCadastro(rs.getDate("cont_dt_cadastro"));
c.setDtDefesa(rs.getDate("cont_dt_defesa"));
conteudo.add(c);
}
rs.close();
stmt.close();
//connection.close();
return conteudo;
} catch (SQLException sqle) {
throw new Exception("Erro ao atualizar dados: " + sqle);
} finally {
ConnectionFactory.closeConnection(conn);
}
}
public List todosConteudo() throws Exception {
PreparedStatement ps = null;
Connection conn = null;
ResultSet rs = null;
try {
conn = this.conn;
ps = conn.prepareStatement("select * from revista.conteudo");
rs = ps.executeQuery();
List<Conteudo> list = new ArrayList<Conteudo>();
while (rs.next()) {
Integer id = rs.getInt(1);
String titulo = rs.getString(2);
String arquivo = rs.getString(3);
String resumo = rs.getString(4);
String abstracte = rs.getString(5);
Date dtCadastro = rs.getDate(6);
Date dtDefesa = rs.getDate(7);
TipoConteudo tico = new TipoConteudo();
tico.setId(rs.getInt(8));
Usuario usuario = new Usuario();
tico.setId(rs.getInt(9));
Avaliacao avaliacao = new Avaliacao();
avaliacao.setId(rs.getInt(10));
list.add(new Conteudo(id, titulo, arquivo, resumo, abstracte, dtCadastro, dtDefesa, avaliacao, tico, usuario));
}
return list;
} catch (SQLException sqle) {
throw new Exception(sqle);
} finally {
ConnectionFactory.closeConnection(conn, ps, rs);
}
}
public Conteudo procurarConteudo(Integer id) throws Exception {
PreparedStatement ps = null;
Connection conn = null;
ResultSet rs = null;
try {
conn = this.conn;
ps = conn.prepareStatement("select * from revista.conteudo where cont_id=?");
ps.setInt(1, id);
rs = ps.executeQuery();
if (!rs.next()) {
throw new Exception("Não foi encontrado nenhum registro com o ID: " + id);
}
String titulo = rs.getString(2);
String arquivo = rs.getString(3);
String resumo = rs.getString(4);
String abstracte = rs.getString(5);
Date dtCadastro = rs.getDate(6);
Date dtDefesa = rs.getDate(6);
TipoConteudo tico = new TipoConteudo();
tico.setId(rs.getInt(7));
Usuario usuario = new Usuario();
tico.setId(rs.getInt(8));
List<Autores> autores = (List<Autores>) new Autores();
Avaliacao avaliacao = new Avaliacao();
avaliacao.setId(rs.getInt(9));
List<AreaConhecimento> areaConhecimento = (List<AreaConhecimento>) new AreaConhecimento();
//areaConhecimento.get(rs.getInt(10));
ps = null;
rs = null;
ps = conn.prepareStatement("select au.auto_id, au.auto_nome from revista.autores au+" +
" inner join revista.autores_conteudo ac on au.auto_id=ac.auto_id where ac.cont_id=?");
ps.setInt(1, id);
rs = ps.executeQuery();
while (rs.next()) {
Autores auto = new Autores();
auto.setId(rs.getInt(1));
auto.setNome(rs.getString(2));
autores.add(auto);
}
ps = null;
rs = null;
ps = conn.prepareStatement("select ar.arco_id, ar.arco_nome from revista.area_conhecimento ar" +
" inner join revista.conteudo_area ca on ar.arco_id=ca.arco_id where ca.cont_id=?");
ps.setInt(1, id);
rs = ps.executeQuery();
while (rs.next()) {
AreaConhecimento area = new AreaConhecimento();
area.setId(rs.getInt(1));
area.setNome(rs.getString(2));
areaConhecimento.add(area);
}
return new Conteudo(id, titulo, arquivo, resumo, abstracte, dtCadastro, dtDefesa, avaliacao, tico, usuario, areaConhecimento, autores);
} catch (SQLException sqle) {
throw new Exception(sqle);
} finally {
ConnectionFactory.closeConnection(conn, ps, rs);
}
}
public void excluirConteudo(Conteudo conteudo) throws Exception {
PreparedStatement ps = null;
Connection conn = null;
if (conteudo == null) {
throw new Exception("O valor passado não pode ser nulo");
}
try {
conn = this.conn;
ps = conn.prepareStatement("delete from revista_eletronica.conteudo where cont_id=?");
ps.setInt(1, conteudo.getId());
ps.executeUpdate();
} catch (SQLException sqle) {
throw new Exception("Erro ao excluir dados:" + sqle);
} finally {
ConnectionFactory.closeConnection(conn, ps);
}
}
private static class AutoresImpl extends Autores {
public AutoresImpl() {
}
}
}
Arquimedes Soares
04/12/2009
Arquimedes Soares
04/12/2009
Arquimedes Soares
04/12/2009