Olá.
Neste exemplo ele conecta um Banco MySQL,faz uma consulta e imprime o ResultSet em um JTable.
Espero que te ajude!!!
package TabelasB;
import java.sql.*;
import java.awt.*;
import javax.swing.*;
import java.util.*;
public class ConsulAut extends JPanel {
private Connection connection;
private JTable table;
public ConsulAut() {
super();
String dbURL ="jdbc:mysql://127.0.0.1/biblioteca";
String usuario = "root";
String senha = "root";
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection(dbURL, usuario, senha);
}
catch (ClassNotFoundException cnfex) {
System.err.println(
"");
cnfex.printStackTrace();
System.exit(1);
}
catch (SQLException sqlex) {
System.err.println("");
sqlex.printStackTrace();
}
getTable();
this.setSize(450, 370);
setLocation(5,20);
}
private void getTable()
{
Statement statement;
ResultSet resultset;
try {
String query = "Select autor,nome,localdearmazenamento from obra order by autor";
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, "Nao existem registros na tabela!!");
//setTitle();
return;
}
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);
add(scroller,BorderLayout.CENTER);
scroller.setPreferredSize(new java.awt.Dimension(447, 353));
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? foi poss?el desconectar.");
sqlex.printStackTrace();
}
}
}