Como llenar una tabla desde una base de datos

Carolina
04 de Septiembre del 2008
Hola necesito saber como llenar una tabla con los datos que tengo en una base de datos, estoy trabajando en netbeans para la parte grafica, el me crea la tabla pero despues no se como llenarla. Quien pueda ayudarme agradezco de antemano.

cucu
04 de Septiembre del 2008
Con que DB estas trabajando?

Carolina
04 de Septiembre del 2008
Estoy trabajando con postgres sql pero ya hice la conexion.

sphinx101
04 de Septiembre del 2008
Saludos!!

primeramente necesitas un driver para hacer la conexion a la base de datos, si utilizas access lo puedes hacer via jdbc-odbc, si utilizas mysql descarga el driver de la pagina de mysql, posteriormente ya que tengas el driver lo pones en tu classpath y ya lo unico que tienes que hacer es la conexion con la base de datos y generar tus consultas (sql) para obtener los registros que necesites de tu base de datos,

jose_insomnio
04 de Septiembre del 2008
A ver una vez que tengas conexion con la base de datos:

ResultSet rs;
Statement control;

rs=control.executeQuery("Select * from BD");

while(rs.next())
{
Vector v=new Vector();
v.add(rs.getString("Nombre"));
//añade al vector todos los campos de la BD
//una vez añadidos, añade el vector a tu tabla cmo una fila

tabla.addRow(v);
tabla.updateUI();
}

repasa este codigo que faltan datos necesarios par la conexion, pero el While te construye la tabla con los registros de la BD




Carolina
04 de Septiembre del 2008
Disculpa se me olvido adjuntar el codigo
es este:
import java.util.Vector;
import java.sql.*;
import javax.swing.table.AbstractTableModel;
import javax.swing.event.TableModelEvent;
import librerias.*;
import javax.swing.table.DefaultTableModel;


public class tabla1 extends javax.swing.JFrame {

/** Creates new form tabla1 */
public tabla1() {
initComponents();
DefaultTableModel tabla=new DefaultTableModel();
String driver,user,pass,url;
driver = "org.postgresql.Driver";
user = "rui";
pass = "rui123";
url = "jdbc:postgresql://192.168.1.3/dbsimel";
Conexion con=new Conexion();
Statement sT = con.Conectar(driver,user,pass,url);
//Statement sTCuenta = con.Conectar(driver,user,pass,url);
ResultSet rS = sT.executeQuery("SELECT * FROM contabilidad.centro_costo ORDER BY descripcion");
while(rS.next()){
Vector v=new Vector();
v.add(rS.getString("descripcion"));
tabla.addRow(v);
//tabla.updateUI();
}
setSize(500,400);
setVisible(true);

jose_insomnio
04 de Septiembre del 2008
el fallo que te da es que debes hacer las operaciones dentro den un try, por si falla, tu codigo parece estar bien puerba esto:

/*---------------*/
import java.util.Vector;
import java.sql.*;
import javax.swing.table.AbstractTableModel;
import javax.swing.event.TableModelEvent;
import librerias.*;
import javax.swing.table.DefaultTableModel;


public class tabla1 extends javax.swing.JFrame {

/** Creates new form tabla1 */
public tabla1() {
initComponents();
DefaultTableModel tabla=new DefaultTableModel();
String driver,user,pass,url;
driver = "org.postgresql.Driver";
user = "rui";
pass = "rui123";
url = "jdbc:postgresql://192.168.1.3/dbsimel";
try
{
Conexion con=new Conexion();
Statement sT = con.Conectar(driver,user,pass,url);
//Statement sTCuenta = con.Conectar(driver,user,pass,url);
ResultSet rS = sT.executeQuery("SELECT * FROM contabilidad.centro_costo ORDER BY descripcion");
}
catch(Exception e){System.out.println("Error procesando: "+e.getMessage());}

while(rS.next()){
Vector v=new Vector();
v.add(rS.getString("descripcion"));
tabla.addRow(v);
//tabla.updateUI();
}
setSize(500,400);
setVisible(true);



jose_insomnio
04 de Septiembre del 2008
A ver esto que tal:

/-----*/
import java.util.Vector;
import java.sql.*;
import javax.swing.table.AbstractTableModel;
import javax.swing.event.TableModelEvent;
import librerias.*;
import javax.swing.table.DefaultTableModel;


public class tabla1 extends javax.swing.JFrame {

/** Creates new form tabla1 */
public tabla1() {
initComponents();
Vector nombresColumnas=new Vector();
nombresColumnas.add("Descripcion");
DefaultTableModel modelo=new DefaultTableModel(nombresColumnas,0);
JTable tabla=new JTable();
tabla.setModel(modelo);
String driver,user,pass,url;
driver = "org.postgresql.Driver";
user = "rui";
pass = "rui123";
url = "jdbc:postgresql://192.168.1.3/dbsimel";

try
{
Conexion con=new Conexion();
Statement sT = con.Conectar(driver,user,pass,url);
//Statement sTCuenta = con.Conectar(driver,user,pass,url);
ResultSet rS = sT.executeQuery("SELECT * FROM contabilidad.centro_costo ORDER BY descripcion");
}
catch(Exception e){System.out.println("Error procesando: "+e.getMessage());}

while(rS.next()){
Vector v=new Vector();
v.add(rS.getString("descripcion"));
modelo.addRow(v);
//tabla.updateUI();
}
JScrollPane scroll=new JScrollPane(tabla);
this.getContentPane().add(scroll);
setSize(500,400);
setVisible(true);



/*---------------*/
Suponiendo que lña conexio esta bien, este codigo debe funcionar yo he hecho multitud de tablas y no tienen mucha historia, te he puesto la tabla en un panel de escroll, y este en tu frame, si no se ve la tabla ponle y administrador Layout-------------

Espero que te funcione, tambien te digo que dedicandole 30 minutos a la api de JTable lo podras sacar tu sola, creeme yo lo hice y yo no soy ningun BilGates, venga animo y suerte, programar en java es la mas facil que hay, maneja las APis

jose_insomnio
04 de Septiembre del 2008
creo que no te estas creando bien la tabla, dime cuantas columnas(campos tiene cada registro y sus nombres y te mandare un codigo que funciona)

Carolina
04 de Septiembre del 2008
jose me esta dando un error con el select el error es el siguiente: must be caught or declared to be thrown, no se que pueda ser alli te mando el codigo con la conexion a la bd yo utilizo una libreria que cree para hacer la conexion

caman_baby
04 de Septiembre del 2008
holas!! saben yo tengo el mismo problema q ella quiero pasar una tabla pero de access a java, quisiera saber si este codigo tambien me sirve o si me podrian decir cual es el adecuado.
El problema es que yo necesito hacerlo sin vector solo con setdefaultmodel y luego set.elementAt ... pero no se como usarlo Gracias