Ola galera blz.
Gente to encagatinhando na programação java estou querendo entender acesso a banco de dados estou com estas três class DB,RS e DisplayAuthors
estou querendo saber porque não estou conseguindo ter resposta da classe DB com o comando select será o q falta eh um iterator para percorrer, ja estou com um exemplo de banco no access na minha máquina alguem pode me ajudar na resolução deste problema.
Valeu !!
DB
import java.sql.*;
public class DB {
private static Connection connection = null;
static {
try {
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
connection = DriverManager.getConnection(“jdbc:odbc:Books”, “”, “”);
} catch (ClassNotFoundException cnfex) {
System.err.println(“Failed to load JDBC/ODBC driver.”);
cnfex.printStackTrace();
System.exit(1);
} catch (SQLException sqlex) {
System.err.println( “Unable to connect” );
sqlex.printStackTrace();
}
}
public static PreparedStatement prepare(String statementString) {
try {
PreparedStatement dec = connection.prepareStatement(statementString);
return dec;
} catch (SQLException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
return null;
}
public static void cleanUP() {
try {
connection.close();
} catch (SQLException sqlex) {
System.err.println(“Unable to disconnect”);
sqlex.printStackTrace();
}
}
}
RS
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Types;
import java.util.Vector;
public class RS {
public static Vector getColumnHeads(ResultSet rs) {
ResultSetMetaData rsmd = null;
Vector columnHeads = new Vector();
try {
rsmd = rs.getMetaData();
for (int i = 1; i <= rsmd.getColumnCount(); ++i)
columnHeads.addElement(rsmd.getColumnName(i));
} catch (SQLException e) {
e.printStackTrace();
}
return columnHeads;
}
public static Vector getRows(ResultSet rs) {
Vector rows = new Vector();
try {
do {
rows.addElement(getNextRow(rs));
} while (rs.next());
} catch (SQLException e) {
e.printStackTrace();
}
return rows;
}
private static Vector getNextRow(ResultSet rs) throws SQLException {
ResultSetMetaData rsmd = null;
Vector currentRow = new Vector();
rsmd = rs.getMetaData();
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.DOUBLE:
currentRow.addElement(new Double(rs.getDouble(i)));
break;
default:
System.out.println("Type was: " +
rsmd.getColumnTypeName(i));
}
return currentRow;
}
}
import javax.swing.<em>;
import java.awt.</em>;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.sql.*;
import java.util.Vector;
public class DisplayAuthors extends JFrame {
private PreparedStatement statement;
private ResultSet resultSet;
public DisplayAuthors() {
super(“Authors Table of Books Database”);
// connect to database books and query database
try {
statement = DB.prepare(“SELECT * FROM authors”);
resultSet = statement.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
}
//obtém títulos de coluna
Vector columnHeads = RS.getColumnHeads(resultSet);
//obtém dados das linhas
Vector rows = RS.getRows(resultSet);
JTable table = new JTable(rows, columnHeads);
// set up GUI and display window
Container c = getContentPane();
c.add(table);
setSize(300, 100); // set window size
setVisible(true); // display window
}
public static void main(String args[]) {
DisplayAuthors window = new DisplayAuthors();
window.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
DB.cleanUP();
System.exit(0);
}
});
}
}
<img src="https://cdn.jsdelivr.net/gh/twitter/twemoji@14/assets/72x72/c.pngool.png?v=9" title=":cool:" class="emoji" alt=":cool:">