Hola, si yo lo ejecuto en un buton funciona perfecto, pero el profe me pide que si o si lo ponga en una capa datos, en otra controlador y en la vista solo el form.
hice este en capa datos
Código:
public ResultSet verProveedor() throws SQLException, ClassNotFoundException{
try{
conexion a = new conexion();
Connection cn = a.conexionn();
String sql="SELECT * FROM proveedor order by proveedor ASC";
PreparedStatement c = cn.prepareStatement(sql);
try (ResultSet rs = c.executeQuery(sql)) {
ResultSetMetaData rsMd = rs.getMetaData();
//asigno el entero de la cantidad de columnas
int cantidadColumnas = rsMd.getColumnCount();
if (cantidadColumnas > 1)
{
return rs;
}
rs.close();
}
}
catch (SQLException | HeadlessException ex) {
JOptionPane.showMessageDialog(null, ex);
}
return null;
}
Acá en la capa control
Código:
public void mostrarProveedor() throws SQLException, ClassNotFoundException
{
// instancio un objeto n de la clase proveedor en capa datos
Proveedor n=new Proveedor();
n.verProveedor();
ResultSet d= n.verProveedor();
ResultSetMetaData rsMd = d.getMetaData();
int cantidadColumnas = rsMd.getColumnCount();
DefaultTableModel modelo;
modelo = new DefaultTableModel();
for (int i = 1; i <= cantidadColumnas; i++) {
modelo.addColumn(rsMd.getColumnLabel(i));
}
//Creando las filas para el JTable
//rs.next() trae una fila de la consulta sql con c.executeQueru(sql)
while (d.next()) {
//creo un array como fila con la cantidad de las columnas
Object[] fila = new Object[cantidadColumnas];
for (int i = 0; i < cantidadColumnas; i++) {
fila[i]=d.getObject(i+1);
}
modelo.addRow(fila);
}
}
y en vista tengo un button ver proveedores y un jtable