PrimeFaces + p:fileUpload + oracle11g

0 respostas
fdutra

Bom dia pessoal.
Gostaria de uma ajudinha… não estou conseguindo fazer um upload de um arquivo foto com sucesso, quando debugo vejo que esta vindo uma string de caracteres para serem gravados em um campo do tipo Blob no oracle, mais acontece que não grava, grava somente o id e o campo foto na tabela continua null. ai embaixo esta os codigos fontes.

codigo do xhtml.

<p:fileUpload fileUploadListener="#{jogadorController.handleFileUpload}"  
            mode="advanced"   
            update="messages"  
            sizeLimit="100000"   
            allowTypes="/(\.|\/)(gif|jpe?g|png)$/" />  
   <p:commandButton value="Salvar" action="#{jogadorController.salva}" ajax="true" update="listaJogadores mensagens"/>

aqui o managed-Bean

<managed-bean>
 	<managed-bean-name>jogadorController</managed-bean-name>
 	<managed-bean-class>JogadorController</managed-bean-class>
 	<managed-bean-scope>application</managed-bean-scope>
 </managed-bean>

classe jogador

public class Jogador {

private int id;
 
 private byte[] foto;



public byte[] getFoto() {
 return foto;
 }

public void setFoto(byte[] foto) {
 this.foto = foto;
 }

public int getId() {
 return id;
 }

public void setId(int id) {
 this.id = id;
 }

 }

o controller

public class JogadorController {

private Jogador jogador = new Jogador();
private Jogador jogadorSelecionado = new Jogador();
private JogadorDAO dao = new JogadorDAO();
private List<Jogador> jogadores = new ArrayList<Jogador>();
private StreamedContent imagem;

public Jogador getJogadorSelecionado() {
	return jogadorSelecionado;
}

public void setJogadorSelecionado(Jogador jogadorSelecionado) {
	this.jogadorSelecionado = jogadorSelecionado;
}

public Jogador getJogador() {
	return jogador;
}

public void setJogador(Jogador jogador) {
	this.jogador = jogador;
}

public List<Jogador> getJogadores() {
	return jogadores;
}

public void setJogadores(List<Jogador> jogadores) {
	this.jogadores = jogadores;
}

public StreamedContent getImagem() {
	return imagem;
}

public void setImagem(StreamedContent imagem) {
	this.imagem = imagem;
}

public void handleFileUpload(FileUploadEvent event) {
	try {
		imagem = new DefaultStreamedContent(event.getFile().getInputstream());
		byte[] foto = event.getFile().getContents();
		this.jogador.setFoto(foto);
	} catch (IOException ex) {
		Logger.getLogger(JogadorController.class.getName()).log(Level.SEVERE, null, ex);
	}
}

public void salva() {
	dao.salva(jogador);
	
	
}


}

o Dao

public class JogadorDAO {

	Conector conector = new Conector();
	
	private String sql;
	private final String COL_ID = "id";
	private final String COL_NOME = "nome";
	private final String COL_ESTADO = "estado";
	private final String COL_DESCRICAO = "descricao";
	private final String COL_FOTO = "foto";

	

	public void salva(Jogador jogador) {
		try {
			int id = 5;
			Class.forName(conector.getDRIVER());
			Connection connection = new Conector().getConnection();
			Statement statement = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);

			String sSQL;
			sSQL = "INSERT INTO jogadores ";
			sSQL += "(ID,FOTO) ";
			sSQL += "VALUES(";
			sSQL +=  id + ", ";
			sSQL += jogador.getFoto() + ")";
			statement.executeQuery(sSQL);
			connection.close();

		}catch(ClassNotFoundException e){
			System.out.println("Classe nao Localizada " + e);
		}catch(SQLException esql){
			System.out.println("Nao foi possivel realizar a conexao " + esql);
		}
	}}
Criado 15 de fevereiro de 2012
Respostas 0
Participantes 1