我可以将JDBC驱动连接到数据库。断点显示它有一个连接 id 并且字段已正确填充,但是在执行 select 语句后,即使数据在数据库中并且 SQL 调用在工作台中正常工作,也不会返回任何行。它只返回没有任何数据的字段名称。
为什么没有返回任何行?
代码:
public class DBConnect {
private static Connection conn;
public static String url = "jdbc:mysql://localhost/efwalter";
public static String user = "root";
public static String pass = "XXXXXXXXX";
private PreparedStatement prep;
public void open_Con() throws ClassNotFoundException {
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(url, user, pass);
} catch (SQLException ex) {
infoBox(ex.toString(), "ERROR");
}
}
public ResultSet get_data(String SQL) {
try {
prep = conn.prepareStatement("SELECT * FROM efwalter.impact_tests");
ResultSet rs = prep.executeQuery();
return rs;
} catch (SQLException ex) {
infoBox(ex.toString(), "ERROR");
return null;
}
}
public void close_Con() {
try {
conn.close();
} catch (SQLException ex) {
infoBox(ex.toString(), "ERROR");
}
}
public void infoBox(String infoMessage, String location) {
JOptionPane.showMessageDialog(null, infoMessage, "InfoBox: " + location, JOptionPane.INFORMATION_MESSAGE);
}
}
访问 ResultSet 的代码:
public void searchFired(ActionEvent event) throws ClassNotFoundException {
try{
DBConnect db = new DBConnect();
db.open_Con();
ResultSet rs = db.get_data();
db.close_Con();
while (rs.next())
{
study_struct study = new study_struct();
ObservableList<String> row = FXCollections.observableArrayList();
study.setStudy_number(rs.getInt(1));
row.add(rs.getString(1));
study.setCustomer_id(rs.getInt(2));
study.setShop_order(rs.getInt(3));
study.setProduct(rs.getString(4));
study.setGmax_results(rs.getString(5));
study.setGmax_average(rs.getDouble(6));
study.setHic_results(rs.getString(7));
study.setHic_average(rs.getDouble(8));
study.setSensor_data_x(rs.getString(9));
study.setSensor_data_y(rs.getString(10));
study.setDescription(rs.getString(11));
study.setGauge(rs.getString(12));
study.setAppraiser(rs.getString(13));
study.setStudy_name(rs.getString(14));
row.add(rs.getString(14));
study.setTimestamp(rs.getString(15));
row.add(rs.getString(15));
study.setWeight(rs.getString(16));
found_studies.add(study);
search_table.add(row);
}
resultsGrid.setItems(search_table);
}
catch (SQLException ex)
{
}
}