Pessoal estou com um problema no insert e delete desse código... insere, deleta e atualiza um registro quando quero porém sempre mostra uma mensagem de que chegou ao último registro! Não entendo o que pode ser...
import java.sql.*;
public class LivroDAL {
private static boolean erro;
private static String mens;
private static Connection con;
public static void conecta(String _alias, String _usuario, String _senha)
{
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection("jdbc:odbc:" + _alias,_usuario,_senha);
}
catch(Exception e){
System.out.println("Erro: " + e.getMessage());
}
}
public static void desconecta()
{
try{
con.close();
}
catch(Exception e){
System.out.println("Erro: " + e.getMessage());
}
}
public static void inseriUmLivro(Livro umlivro)
{
try {
conecta("UmAlias","","");
PreparedStatement st = con.prepareStatement("INSERT INTO TabLivros (titulo,autor,editora,anoedicao,localizacao) Values (?,?,?,?,?)");
st.setString(1,umlivro.getTitulo());
st.setString(2,umlivro.getAutor());
st.setString(3,umlivro.getEditora());
st.setInt(4,Integer.parseInt(umlivro.getAnoEdicao()));
st.setString(5,umlivro.getLocalizacao());
st.executeUpdate();
desconecta();
}
catch(Exception e){
setErro(e.getMessage());
}
}
public static void consultaUmLivro(Livro umlivro)
{
try {
conecta("UmAlias","","");
ResultSet rs;
Statement st = con.createStatement();
rs = st.executeQuery("SELECT * FROM TabLivros WHERE titulo='"+ umlivro.getTitulo() +"'");
while (rs.next())
{
umlivro.setAutor(rs.getString("autor"));
umlivro.setEditora(rs.getString("editora"));
umlivro.setAnoEdicao(rs.getString("anoedicao"));
umlivro.setLocalizacao(rs.getString("localizacao"));
}
desconecta();
}
catch(Exception e){
setErro(e.getMessage());
}
}
public static void alteraUmLivro(Livro umlivro)
{
try {
conecta("UmAlias","","");
ResultSet rs;
Statement st = con.createStatement();
rs = st.executeQuery("UPDATE TabLivros SET autor='"+ umlivro.getAutor() +"', editora='"+ umlivro.getEditora() +"', anoedicao='"+ umlivro.getAnoEdicao() +"', localizacao='"+ umlivro.getLocalizacao() +"' WHERE titulo='"+ umlivro.getTitulo() +"'");
while (rs.next())
{
umlivro.setTitulo(rs.getString("titulo"));
umlivro.setAutor(rs.getString("autor"));
umlivro.setEditora(rs.getString("editora"));
umlivro.setAnoEdicao(rs.getString("anoedicao"));
umlivro.setLocalizacao(rs.getString("localizacao"));
}
desconecta();
}
catch(Exception e){
setErro(e.getMessage());
}
}
public static void deletaUmLivro(Livro umlivro)
{
try {
conecta("UmAlias","","");
ResultSet rs;
Statement st = con.createStatement();
rs = st.executeQuery("DELETE FROM TabLivros WHERE titulo='"+ umlivro.getTitulo() +"'");
while (rs.next())
{
umlivro.setTitulo(rs.getString("titulo"));
umlivro.setAutor(rs.getString("autor"));
umlivro.setEditora(rs.getString("editora"));
umlivro.setAnoEdicao(rs.getString("anoedicao"));
umlivro.setLocalizacao(rs.getString("localizacao"));
}
desconecta();
}
catch(Exception e){
setErro(e.getMessage());
}
}
public static void setErro(boolean _erro)
{
erro=_erro;
}
public static void setErro(String _mens)
{
erro=true;
mens=_mens;
}
public static boolean getErro() {return erro;}
public static String getMens() {return mens;}
}
Pergunta
EMSO.EXE
Pessoal estou com um problema no insert e delete desse código... insere, deleta e atualiza um registro quando quero porém sempre mostra uma mensagem de que chegou ao último registro! Não entendo o que pode ser...
import java.sql.*; public class LivroDAL { private static boolean erro; private static String mens; private static Connection con; public static void conecta(String _alias, String _usuario, String _senha) { try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con = DriverManager.getConnection("jdbc:odbc:" + _alias,_usuario,_senha); } catch(Exception e){ System.out.println("Erro: " + e.getMessage()); } } public static void desconecta() { try{ con.close(); } catch(Exception e){ System.out.println("Erro: " + e.getMessage()); } } public static void inseriUmLivro(Livro umlivro) { try { conecta("UmAlias","",""); PreparedStatement st = con.prepareStatement("INSERT INTO TabLivros (titulo,autor,editora,anoedicao,localizacao) Values (?,?,?,?,?)"); st.setString(1,umlivro.getTitulo()); st.setString(2,umlivro.getAutor()); st.setString(3,umlivro.getEditora()); st.setInt(4,Integer.parseInt(umlivro.getAnoEdicao())); st.setString(5,umlivro.getLocalizacao()); st.executeUpdate(); desconecta(); } catch(Exception e){ setErro(e.getMessage()); } } public static void consultaUmLivro(Livro umlivro) { try { conecta("UmAlias","",""); ResultSet rs; Statement st = con.createStatement(); rs = st.executeQuery("SELECT * FROM TabLivros WHERE titulo='"+ umlivro.getTitulo() +"'"); while (rs.next()) { umlivro.setAutor(rs.getString("autor")); umlivro.setEditora(rs.getString("editora")); umlivro.setAnoEdicao(rs.getString("anoedicao")); umlivro.setLocalizacao(rs.getString("localizacao")); } desconecta(); } catch(Exception e){ setErro(e.getMessage()); } } public static void alteraUmLivro(Livro umlivro) { try { conecta("UmAlias","",""); ResultSet rs; Statement st = con.createStatement(); rs = st.executeQuery("UPDATE TabLivros SET autor='"+ umlivro.getAutor() +"', editora='"+ umlivro.getEditora() +"', anoedicao='"+ umlivro.getAnoEdicao() +"', localizacao='"+ umlivro.getLocalizacao() +"' WHERE titulo='"+ umlivro.getTitulo() +"'"); while (rs.next()) { umlivro.setTitulo(rs.getString("titulo")); umlivro.setAutor(rs.getString("autor")); umlivro.setEditora(rs.getString("editora")); umlivro.setAnoEdicao(rs.getString("anoedicao")); umlivro.setLocalizacao(rs.getString("localizacao")); } desconecta(); } catch(Exception e){ setErro(e.getMessage()); } } public static void deletaUmLivro(Livro umlivro) { try { conecta("UmAlias","",""); ResultSet rs; Statement st = con.createStatement(); rs = st.executeQuery("DELETE FROM TabLivros WHERE titulo='"+ umlivro.getTitulo() +"'"); while (rs.next()) { umlivro.setTitulo(rs.getString("titulo")); umlivro.setAutor(rs.getString("autor")); umlivro.setEditora(rs.getString("editora")); umlivro.setAnoEdicao(rs.getString("anoedicao")); umlivro.setLocalizacao(rs.getString("localizacao")); } desconecta(); } catch(Exception e){ setErro(e.getMessage()); } } public static void setErro(boolean _erro) { erro=_erro; } public static void setErro(String _mens) { erro=true; mens=_mens; } public static boolean getErro() {return erro;} public static String getMens() {return mens;} }Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.