TauiPJ
Fevereiro 3, 2004, 8:33pm
#1
Como faço para inserir os dados de um banco de dados em um componente jTable???
Eu já tentei de várias formas, mas nada funcionou.
Ex:
String[] Cab =
{
“c1”,“c2”, “c3”, “c4”,
};
String[][] Val =
{
// Como inserir um bloco de repetição aqui, por exemplo?
{ “t”,“e”, “s”, “t” },
// repetir.
};
jTable1.setModel(new javax.swing.table.DefaultTableModel
( Val, Cab )
);
Obs. Eu estou usando editor NetBeans.
Obrigado!!!
Taui
Oi
Taui, de uma olhada neste código, ele faz exatamente o que tu precisa.
[code]//Exibe em forma de tabela/listagem a tabela GG_STUDENT.
import java.sql.;
import java.awt. ;
import javax.swing.;
import java.awt. ;
import java.awt.event.;
import java.util. ;
public class TableDisplay extends JFrame {
private Connection connection;
private JTable table;
public TableDisplay() {
String url = "jdbc:odbc:banco.mdb";
String username = "paulo";
String password = "cesar";
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
connection = DriverManager.getConnection(url, username, password);
}
catch (ClassNotFoundException cnfex) {
System.err.println(
"Falhou a conexão com o banco");
cnfex.printStackTrace();
System.exit(1);
}
catch (SQLException sqlex) {
System.err.println("Conexão desabilitada");
sqlex.printStackTrace();
}
getTable();
setSize(800,370);
setLocation(5,20);
show();
}
private void getTable()
{
Statement statement;
ResultSet resultset;
try {
String query = "Select * from Tab_Pacientes";
statement = connection.createStatement();
resultset = statement.executeQuery(query);
displayResultSet(resultset);
statement.close();
}
catch ( SQLException sqlex ) {
sqlex.printStackTrace();
}
}
private void displayResultSet(ResultSet rs )
throws SQLException
{
boolean moreRecords = rs.next();
if (! moreRecords) {
JOptionPane.showMessageDialog(this, "Não existem registros na tabela!!");
setTitle("Registros Vasios");
return;
}
setTitle("Listagem Geral dos dados - Tabela Student - bancoDB");
Vector columnHeads = new Vector();
Vector rows = new Vector();
try {
ResultSetMetaData rsmd = rs.getMetaData();
for (int i = 1; i <= rsmd.getColumnCount(); ++i)
columnHeads.addElement(rsmd.getColumnName(i));
do {
rows.addElement(getNextRow(rs, rsmd));
} while (rs.next());
table = new JTable(rows, columnHeads);
JScrollPane scroller = new JScrollPane(table);
getContentPane().add(scroller,BorderLayout.CENTER);
validate();
}
catch (SQLException sqlex) {
sqlex.printStackTrace();
}
}
private Vector getNextRow( ResultSet rs, ResultSetMetaData rsmd)
throws SQLException
{
Vector currentRow = new Vector();
for (int i = 1; i <= rsmd.getColumnCount(); ++i)
switch(rsmd.getColumnType(i)) {
case Types.VARCHAR: currentRow.addElement(rs.getString(i));
break;
case Types.INTEGER:currentRow.addElement(new Long(rs.getLong(i)));
break;
/*case Types.LONGCHAR:currentRow.addElement(rs.getString(i));
break;*/
default: System.out.println("Tipo dos Dados: " + rsmd.getColumnTypeName(i));
}
return currentRow;
}
public void shutDown()
{
try {
connection.close();
}
catch (SQLException sqlex) {
System.err.println("Não foi possível desconectar.");
sqlex.printStackTrace();
}
}
public static void montaTable()
{
final TableDisplay app = new TableDisplay();
app.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e)
{
}
}
);
}
public static void main(String args[]) {
montaTable();
}
}[/code]
T+
TauiPJ
Fevereiro 4, 2004, 1:39pm
#3
Jeveaux!
Era exatamente isso que eu estava precisando,
estava procurando como fazer isso à dias,
ainda bem que há pessoas como vc, disposto em ajudar.
Muito obrigado mesmo!!!
Taui
Que esse exemplo ajude muitos outros!!!