Sou iniciante em Java e estou fazendo um sistema para cadastrar livros e artigos utilizando JDBC e ambiente Eclipse, porém com o código que possuo estou tendo dificuldade para cadastrar o código do Tipo da tabela Tipos na JComboBox de tipo, estou utilizando também programação em camadas com DAL, BO e DTO.
Método para carregar a JComboBox de tipo
@SuppressWarnings({ "rawtypes", "unused", "unchecked" })
private JComboBox getComboTipo() {
if(comboTipo == null) {
try
{
TipoBO tipoBO = new TipoBO();
@SuppressWarnings("unchecked")
ComboBoxModel comboTipoModel =
new DefaultComboBoxModel(converteTipos(tipoBO.listaTipos()));
comboTipo = new JComboBox();
comboTipo.setModel(comboTipoModel);
}catch (Exception e)
{
e.printStackTrace();
}
}
return comboTipo;
}
//Preparando dados para a combo de tipos
private String[] converteTipos(List<TipoDTO> lista)
{
String[] result = new String[lista.size()];
for (int i = 0; i < lista.size();i++)
{
TipoDTO tipoDTO = lista.get(i);
result[i] = tipoDTO.getNome();
}
return result;
}
Listar Tipos da classe de BO:
public List<TipoDTO> listaTipos() throws NegocioException
{
List<TipoDTO> lista = null;
try
{
TipoDAO tipoDao = new TipoDAO();
lista = tipoDao.listarTodos();
}catch (Exception e)
{
e.printStackTrace();
throw new NegocioException(e.getMessage(), e);
}
return lista;
}
Classe DAO para o método listarTodos:
@Override
public List<TipoDTO> listarTodos() throws PersistenciaException {
List<TipoDTO> listaTipos = new ArrayList<TipoDTO>();
try
{
Connection connection = ConexaoUtil.getInstance().getConnection();
String sql = "SELECT * FROM TB_Tipo";
PreparedStatement statement = connection.prepareStatement(sql);
ResultSet resultset = statement.executeQuery();
while (resultset.next())
{
TipoDTO tipoDTO = new TipoDTO();
tipoDTO.setId(resultset.getInt("id"));
tipoDTO.setNome(resultset.getString("nome"));
listaTipos.add(tipoDTO);
}
connection.close();
}catch (Exception e)
{
e.printStackTrace();
throw new PersistenciaException(e.getMessage(),e);
}
return listaTipos;
}