Pdf no banco

Bom dia,

Fiz um cód que consigo inserir no postgres utilizando um campo do tipo bytea um pdf.

fiz bean está dessa forma.

private InputStream tutorial;
public InputStream getTutorial() {
return tutorial;
}
public void setTutorial(InputStream tutorial) {
this.tutorial = tutorial;
}
e cadastro o pdf da seguinte forma:
public boolean cadastraInstrumento(Instrumento ins) throws SQLException, FileNotFoundException {

	try {
		File file = new File("c:\\experimento\\tutorial\\thies.pdf");  
        FileInputStream fis = new FileInputStream(file); 
		
			stmt = con.prepareStatement("INSERT INTO instrumento(nserie,fabricante,equipamento,especificacao,diretorio,tutorial)VALUES(?,?,?,?,?,?)");
			stmt.setString(1, ins.getNserie().toUpperCase());
			stmt.setString(2,ins.getFabricante().toUpperCase());
			stmt.setString(3,ins.getEquipamento().toUpperCase());
			stmt.setString(4,ins.getEspecificacao().toUpperCase());
			stmt.setString(5, ins.getDiretorio());
			s[b]tmt.setBinaryStream(6, fis, (int)file.length()); [/b]
			stmt.execute();
			desconecta();
			return true;
	} catch (SQLException e) {
		stmt = null;
		e.printStackTrace();
		return false;
	}
}

ele está cadastrando certo!
Gostaria de saber como faço pra dar um select no banco pra trazer o campo onde está o pdf e no JSTL conseguir abrir o pdf, segue abaixo o cód.

public Instrumento exibedadosinstrumento(int idinstrumento){
try {
String sql = “SELECT * from instrumento WHERE idinstrumento = '” + idinstrumento + “’”;
//System.out.println(sql);
stmt = con.prepareStatement(sql);
rs = stmt.executeQuery();
while(rs.next()){
ins = new Instrumento();
ins.setIdinstrumento(rs.getInt(“idinstrumento”));
ins.setNserie(rs.getString(“nserie”));
ins.setFabricante(rs.getString(“fabricante”));
ins.setEquipamento(rs.getString(“equipamento”));
ins.setEspecificacao(rs.getString(“especificacao”));
ins.setDiretorio(rs.getString(“diretorio”));
ins.setTutorial(rs.getBinaryStream(“tutorial”));
}
} catch (SQLException e) {
e.printStackTrace();
}
return ins;
}

JSTL
<display:column sortable=“false” style=“width:30px” title=“Tutorial”>
<a href="<c:url value="${lista[item].tutorial}"></c:url>">


</display:column>
Ele imprimi apenas o endereço de memória. :frowning:

Muito Obrigado

kra pesquisei sobre o jstl por cima e entendi mais ou menos o que ele faiz, entaum seguinte:

  • verifica se vc declarou sua tag para utilizar o jtsl, no artigo que encontrei, e declarado uma tag que serve de ponte para as tags sun de jtsl.
  • para vc utilizar a leitura do pdf vc precisara declarar um tipo de variavel e para chamar o metodo da leitura de pdf vc utiliza a anterior, exemplo :
     <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> // declara tag para utilização do JSTL
    < jsp:useBean id="agora" class="java.util.Date"> // pelo que entendi esta linha declara uma "variavel" e seu tipo
   <fmt:formatDate value="${agora}" /> // format date é um "metodo", e a variavel herda esse valor
  • entaum verifica se a logica segue esta ordem e se o pacote para abrir seu pdf está correta.

espero ter ajudado amigo

PS : vou pesquisar mais para ver se acho outras soluçoes ao seu problema.

Ow amigão obrigado pela ajuda. Estou meio perdido rsrs

Então, eu declarei sim… segue abaixo

<%@ taglib uri=“http://displaytag.sf.net” prefix=“display”%>
<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c”%>

a biblioteca que vc está utilizando para abrir seu arquivo é essa core, se nao me mande o nome para pesquisar sobre ela, a core pelo que vi e para fazer laços e
modificar dados em memoria, nao sei se é a unica opção para abrir um pdf, vendo que pdf e tratado geralmente como uma imagem, li que o xml pode ser utilizado para abrir arquivos para leitura.

e qual o erro que é apresentado para vc??

é verdade…preciso de uma biblioteca para abrir o pdf né.

O erro que dá é esse
HTTP Status 404 - /chuvaproject/java.io.ByteArrayInputStream@108c825

Me parece que ele acha o arquivo mas não abre, pois qnd eu passo o mouse sobre o link do pdf que quero abrir ele mostra o endereço de memória dele.

obrigado amigo.

testa ai se der certo me avisa!!!

kra não consegui…usei o import de imagem, xlm… e nada :frowning:

saca só esse link bacana que eu achei, mas mesmo com ele não obtive sucesso

http://www.servletsuite.com/jsp3.htm

abs,