Olá pessoal estou com uma dúvida aqui e ficaria grato se me ajudassem eu estou tentando realizar uma consulta no banco com o código abaixo:
package DAO;
import Adapter.FinanciadorAdapter;
import Model.Financiador;
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JOptionPane;
public class FinanciadorDAO {
public void GuardaFinanciador(Financiador financiador){
PreparedStatement co=null;
Connection c=null;
try {
Class.forName("org.mariadb.jdbc.Driver");
c=DriverManager.getConnection("jdbc:mysql://127.0.0.1/sweet_homebd","root","willroot");
String insercao="INSERT INTO financiador (nome,profissao,salario,home_boss,data_salario,montante_atual,limite_valor_conta,senha) VALUES (?,?,?,?,?,?,?,?)";
co = c.prepareStatement(insercao);
co.setString(1,financiador.getNome());
co.setString(2,financiador.getProfissao());
co.setDouble(3,financiador.getSalario());
co.setBoolean(4,financiador.isHomeBoss());
co.setDate(5,Date.valueOf(financiador.getDataSalario()));
co.setDouble(6,financiador.getMontanteAtual());
co.setDouble(7,financiador.getLimiteValorConta());
co.setString(8,financiador.getSenha());
co.execute();
} catch (ClassNotFoundException ex) {
JOptionPane.showMessageDialog(null,"Erro de conexão");
}catch (SQLException ex) {
JOptionPane.showMessageDialog(null,"Erro de sql "+ex);
}finally{
try {
co.close();
c.close();
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null,"Erro de sql");
}
}
}
public Financiador ConsultaFinanciador(Financiador financiador){
Connection c=null;
PreparedStatement co=null;
try{
Class.forName("org.mariadb.jdbc.Driver");
c=DriverManager.getConnection("jdbc:mysql://127.0.0.1/sweet_homebd","root","willroot");
String busca="SELECT * FROM financiador WHERE nome=?";
co=c.prepareStatement(busca);
co.setString(1,financiador.getNome());
ResultSet r;
r=co.executeQuery();
FinanciadorAdapter adapter=new FinanciadorAdapter(r);
return adapter.adaptarFinanciador();
} catch (ClassNotFoundException ex) {
JOptionPane.showMessageDialog(null,"Erro de conexão");
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null,"Erro de sql"+ex.getErrorCode());
}
return null;
}
A classe de “transformação” do objeto
package Adapter;
import Model.Financiador;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.time.LocalDate;
public class FinanciadorAdapter {
private ResultSet resultset;
private Financiador financiador;
public FinanciadorAdapter(ResultSet r){
this.resultset=r;
this.financiador=new Financiador();
}
public Financiador adaptarFinanciador()throws SQLException{
financiador.setCodFinanciador(this.resultset.getInt(1));
financiador.setProfissao(this.resultset.getString(3));
financiador.setSalario(this.resultset.getDouble(4));
financiador.setHomeBoss(this.resultset.getBoolean(5));
financiador.setDataSalario(this.resultset.getDate(6).toLocalDate());
financiador.setMontanteAtual(this.resultset.getDouble(7));
financiador.setLimiteValorConta(this.resultset.getDouble(8));
financiador.setSenha(this.resultset.getString(10));
//Ainda não retorna o ranking mas logo será implementado
return this.financiador;
}
}
O errorCod() é zero por isso acredito que isso quer dizer que estou supostamente tentando acessar o índice zero quando não é o caso.