Boa noite pessoal.
Estou desenvolvendo um aplicativo desktop em Java e gostaria de saber como vocês fazem para implementar o código dos botões primeiro, anterior, próximo, ultimo. Consegui fazer o código dos botões primeiro e ultimo, mas os outros não esta funcionando. Estou usando o exemplo da apostila CALEUM fj21 (é para WEB mas estou usando a parte do banco somente como exemplo). Tambem gostaria de saber se está correto minha implementação em MVC, estou ainda no primeiro ano da faculdade, quase nem falamos muito deste assunto, mas já quero começar a desenvolver usando este padrão. Qual a melhor forma de implementar isso em MVC?? Tem vários exemplos na net mas gostaria da opinião de vocês. Segue código:
PACOTE: MODELO
public class Item {
private int CodIte;
private String DesIte;
private int PesIte;
getters e setters padrao….
}
PACOTE: DAO
public class Dao {
private Connection conexao;
private ResultSet rs;
Item item;
List<Item> itens = new ArrayList<Item>();
public static Connection getConnection() throws SQLException {
try {
Class.forName("com.mysql.jdbc.Driver");
System.out.println("Conectado a MySql");
return DriverManager.getConnection("jdbc:mysql://localhost/javaponto", "root", "sa");
} catch (ClassNotFoundException e) {
throw new SQLDataException(e.getMessage());
}
}
public Dao() throws SQLException {
this.conexao = getConnection();
}
public List<Item> consultaPrimeiroItem() throws SQLException {
String sql = "SELECT * FROM CADITE";
PreparedStatement stmt = conexao.prepareStatement(sql);
rs = stmt.executeQuery();
List<Item> menorItem = new ArrayList<Item>();
rs.first();
Item item = new Item();
item.setCodIte(rs.getInt("CODITE"));
item.setDesIte(rs.getString("DesIte"));
item.setPesIte(rs.getInt("PesIte"));
menorItem.add(item);
rs.close();
stmt.close();
return menorItem;
}
private void jbAnteriorActionPerformed(java.awt.event.ActionEvent evt) {
try {
Dao dao = new Dao();
List<Item> itens = dao.consultaAnteriorItem();
if (itens.size() > 0) {
for (Item item : itens) {
jtfCodIte.setText(String.valueOf(item.getCodIte()));
jtfDesIte.setText(item.getDesIte());
jtfPesIte.setText(String.valueOf(item.getPesIte()));
}
}
} catch (SQLException ex) {
Logger.getLogger(CadastroItens.class.getName()).log(Level.SEVERE, null, ex);
}
}
ESTA GERANDO O SEGUINTE ERRO:
10/08/2009 20:51:37 view.CadastroItens jbAnteriorActionPerformed
SEVERE: null
java.sql.SQLException: Before start of result set
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
at com.mysql.jdbc.ResultSetImpl.checkRowPos(ResultSetImpl.java:815)
at com.mysql.jdbc.ResultSetImpl.getInt(ResultSetImpl.java:2593)
at com.mysql.jdbc.ResultSetImpl.getInt(ResultSetImpl.java:2734)

