我正在尝试从数据库(MySQL)中检索数据(ID号)并将其添加一个。但是,当我尝试将此代码放在下面时,当我尝试构建它时,表单并没有显示出来。但是当我尝试删除Connection cn
行时,表单最终会显示出来。我有另一个使用此代码的项目,它工作得非常好。我不确定为什么它不在这个上工作。
public Abstract() throws Exception {
Connection cn = DriverManager.getConnection("jdbc:mysql://localhost:3306/user?zeroDateTimeBehavior=convertToNull","root","");
initComponents();
Statement st = null;
ResultSet rs;
try {
String sql = "SELECT ID from bidding_abstractofprices";
st = cn.prepareStatement(sql);
rs = st.executeQuery(sql);
while(rs.next()){
int id = Integer.parseInt(rs.getString("ID")) + 1;
lblTransacID.setText(String.valueOf(id));
}
}catch (Exception ex){
}
}
答案 0 :(得分:0)
您尝试执行的操作是从数据库中包含的 bidding_abstractofprices 表中包含的最后一条记录中获取 ID 字段值,然后将其增加一个 ID 值(如果我错了,请纠正我)。我不在乎为什么,但我可以很容易地假设。我可以这样做:
public Abstract() throws Exception {
// Allow all your components to initialize first.
initComponents();
Connection cn = DriverManager.getConnection("jdbc:mysql://localhost:3306/user?zeroDateTimeBehavior=convertToNull","root","");
Statement st = null;
ResultSet rs;
try {
String sql = "SELECT * FROM bidding_abstractofprices ORDER BY ID DESC LIMIT 1;";
st = cn.prepareStatement(sql);
rs = st.executeQuery(sql);
int id = 0;
while(rs.next()){
id = rs.getInt("ID") + 1;
}
lblTransacID.setText(String.valueOf(id));
rs.close();
st.close();
cn.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}