Campo preenchido no banco mas volta como null

5 respostas
JAVADRIANO

E ai pessoal!

Bom é minha primeira postagem, sou iniciante no java e estou desenvolvendo um projeto de locadora.
Minha dúvida é a seguinte. no cadastro do filme tenho um campo para colocar o link do trailer, ele adcionou normalmente, mas na query, ao exibir os dados do filme o trailer volta como NULL.
Alguém pode me ajudar, existe alguma restrição para link no banco.

Valeu!

5 Respostas

devel.andrerocha

Você conferiu no banco se o dado foi inserido? Fez close da sessão para ele comitar? Posta o codigo se puder

JAVADRIANO
Sim o foi adicionado no banco. Essa é minha query:
public List<FilmeVO> pesquisaFilme(FilmeVO filme) throws SQLException {
		List<FilmeVO> listaFilme = new ArrayList<FilmeVO>();
		StringBuffer query = new StringBuffer();
		query.append("SELECT * FROM FILME WHERE 1 = 1");
		
		if (filme.getCodFilme() != null){
			query.append(" AND COD_FILME = ?");
		}
		if (filme.getNome() != null) {
			query.append(" AND NOME LIKE ?");
		}
		if (filme.getGenero() != null) {
			query.append(" AND GENERO LIKE ?");
		}
		if (filme.getTipo() != null) {
			query.append(" AND TIPO LIKE ?");
		}
		if (filme.getSinopse() != null) {
			query.append(" AND SINOPSE LIKE ?");
		}
		if (filme.getAtores() != null) {
			query.append(" AND ATORES LIKE ?");
		}
		if (filme.getDiretor() != null) {
			query.append(" AND DIRETOR LIKE ?");
		}
		if (filme.getTrailer() != null) {
			query.append(" AND TRAILER LIKE ?");
		}
		query.append(" ORDER BY NOME");
		System.out.println(query.toString());
		int index = 1;
		PreparedStatement pstmt = connection.prepareStatement(query.toString());
		query = null;
		if (filme.getCodFilme() != null){
			pstmt.setLong(index ++, filme.getCodFilme());
		}
		if (filme.getNome() != null){
			pstmt.setString(index ++, "%" + filme.getNome() + "%");
		}
		if (filme.getGenero() != null){
			pstmt.setString(index ++, "%" + filme.getGenero() + "%");
		}
		if (filme.getTipo() != null){
			pstmt.setString(index ++, "%" + filme.getTipo() + "%");
		}
		if (filme.getSinopse() != null){
			pstmt.setString(index ++, "%" + filme.getSinopse() + "%");
		}
		if (filme.getAtores() != null){
			pstmt.setString(index ++, "%" + filme.getAtores() + "%");
		}
		if (filme.getDiretor() != null){
			pstmt.setString(index ++, "%" + filme.getDiretor() + "%");
		}
		if (filme.getTrailer() != null){
			pstmt.setString(index++, "%"+ filme.getDiretor() + "%");
		}

		ResultSet result = pstmt.executeQuery();
		try {
			while (result.next()) {
				FilmeVO vo = new FilmeVO();
				
				vo.setCodFilme(Long.parseLong(result.getString("COD_FILME")));
				vo.setNome(result.getString("NOME"));
				vo.setGenero(result.getString("GENERO"));
				vo.setTipo(result.getString("TIPO"));
				vo.setSinopse(result.getString("SINOPSE"));
				vo.setAtores(result.getString("ATORES"));
				vo.setDiretor(result.getString("DIRETOR"));
				vo.setTrailer(result.getString("TRAILER"));
				listaFilme.add(vo);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			try {
				pstmt.close();
				result.close();
			} catch (SQLException e2) {
				e2.printStackTrace();
			}
		}
		
		return listaFilme;
	}
S

Geralmente isso é erro de digitação, às vezes o nome do campo tá trailer e você tá buscando triler por exemplo.

ViniGodoy

Veja a linha 57:

if (filme.getTrailer() != null){   
        pstmt.setString(index++, "%"+ filme.getDiretor() + "%");   //AQUI
    }

Não deveria ser filme.getTrailer() ?

Acho que foi problema no Copy&Paste.

Se fosse, o BD daria o erro de que a coluna não existe. Mas ele descreve que está voltando nulo, simplesmente.

JAVADRIANO

Valeuu!

Nossa como não vi isso! Valeu mesmo!

Desculpe… to iniciando no java

Criado 6 de março de 2009
Ultima resposta 6 de mar. de 2009
Respostas 5
Participantes 4