Olá. Estou estou fazendo meu primeiro projeto em java utilizando banco de dados SQL SERVER 2014.
A tela de cadastro esta funcionando corretamente, mas o que está me causando problema é que ao consultar os dados no banco, as palavras que possuem acentos, não estão aparecendo corretamente. Por exemplo, o nome JOSÉ, ao fazer o Select no banco aparece JOSÉ.
Se eu consultar o registro na tela por onde foi inserido o registro aparece corretamente.
Agora se eu inserir o nome JOSÉ com INSERT direto no banco, no Select aparece corretamente, mas quando chamo o registo na tela do aplicativo pelo ID aparece JOS?
Preciso que quando inserir os dados no banco tanto pelo aplicativo quanto diretamente no banco as informações sejam iguais.
Estou utilizando o método abaixo para incluir os dados na tabela:
public int incluir(pessoas objpes) throws SQLException{
conexao conexao = new conexao();
int registros;
try(PreparedStatement pstmt = conexao.getConexao().prepareStatement
("INSERT INTO pessoas (pes_nome, pes_rg, pes_cpf, pes_end, pes_tel, pes_dtcadastro,pes_status)" +
" VALUES (?,?,?,?,?,?,?)")){
pstmt.setString(1,objpes.getPes_nome().toUpperCase().trim());
pstmt.setString(2,objpes.getPes_rg().trim());
pstmt.setString(3,objpes.getPes_cpf().trim());
pstmt.setString(4,objpes.getPes_end().trim());
pstmt.setString(5,objpes.getPes_tel().trim());
pstmt.setTimestamp(6,new java.sql.Timestamp(objpes.getPes_dtcadastro().getTime()));
pstmt.setInt(7,objpes.getPes_status());
registros = pstmt.executeUpdate();
}
PreparedStatement pstmtAux = conexao.getConexao().prepareStatement("SELECT @@IDENTITY");
ResultSet rs = pstmtAux.executeQuery();
int codigo = 0;
if((registros ==1)&&(rs !=null)){
rs.next();
codigo = rs.getInt(1);
return codigo;}
else{
return codigo;
}
}
Obs.: A palavra erro na programação está mais associada a uma exception gerada. Caso não tenha uma exceção, não tem ERRO, apenas um problema na forma que foi programado.
Demorei pra responder pois estava estudando os drives JDBC que recomendou. No pouco entendimento que tinha, ODBC e JDBC eram a mesma coisa, mas lendo sobre o assunto descobri que fazem praticamente a mesma coisa, mas que JDBC tem que incluir o caminho do JAR na aplicação para funcionar. Dai bati bastante a cabeça mas consegui montar a conexão novamente. Por enquanto com o novo drive instalado e a nova conexão o problema dos caracteres especiais foi resolvido. Consultando tando no SGDB quanto no aplicativo as informações estão iguais.
Agora a classe de conexão ficou assim: