我在连接到MySQL数据库的JFrame上有一个以Reservation ID命名的JTextField。 每当我在数据库中添加新乘客时,在我输入乘客姓名和其他文本字段中的其他详细信息之前,JTextField应根据自动增量自动为JTextField生成新的预留ID。
我的代码:
resId = new JTextField();
try{
rs = stt.executeQuery("select ReservID as last_id from passenger");
int lastid = rs.getInt("last_id");
lastid++;
resId.setText(String.valueOf(last_id));
}catch(Exception e){
JOptionPane.showMessageDialog(null, "cannot retrieve");
}
resId.setBounds(432, 178, 126, 22);
frame.getContentPane().add(resId);
resId.setColumns(10);
我的专栏RevervID的最后一行的值为003.当我运行表单时,它应该在预订ID文本字段中显示 004 如何实现?请帮忙.. 感谢
下面图片链接中的texfield http://i.imgbox.com/wcf9KicU.png
答案 0 :(得分:0)
首先使用数据库查询找出最大ID - > Select max(id) from mytable
将最大ID存储在变量中> int max_id= max_id_from_database;
增加max_id
一个> max_id++;
将max_id值添加到您的JTextField-> myJTextField.setText("" + max_id);
编辑:根据您的代码(只需在ReservID之前添加max并在if条件中添加rs.next()并且您的数据库中的ReservID必须为整数)。
resId = new JTextField();
try{
rs = stt.executeQuery("select max(ReservID) as last_id from passenger");
if(rs.next()){
int lastid = rs.getInt("last_id");
lastid++;
resId.setText(String.valueOf(last_id));
}
}catch(Exception e){
JOptionPane.showMessageDialog(null, "cannot retrieve");
}