[英]Insert multiple rows in MySQL
I am trying to insert the details below from the jtextfields into the database. 我正在尝试将以下详细信息从jtextfields插入数据库中。 Columns to be inserted are roomNumberSelected,guestName,passportNo,phoneNo in Guest table.
来宾表中要插入的列是roomNumberSelected,guestName,passportNo,phoneNo。
Currently when it compiles, it only inserts the final row of data. 当前,在编译时,它仅插入数据的最后一行。 I am implementing three-tier architecture in my application.
我正在应用程序中实现三层体系结构。 I believe I have to alter my SQL statement to insert multiple values but I'm unsure on how to go about that.
我相信我必须更改我的SQL语句才能插入多个值,但是我不确定该怎么做。
UI - GuestDetails.java 用户界面-GuestDetails.java
No. of rooms needed is equivalent to noOfRoomsSelected. 所需房间数等于noOfRoomsSelected。 In this case, noOfSelectedRooms = 5;
在这种情况下,noOfSelectedRooms = 5;
if(noOfRoomsSelected=="1"){
if(name1.isEmpty()||passportNo1.isEmpty()||phoneNo1.isEmpty()){
JOptionPane.showMessageDialog(null, "Some Required field(s) are not entered. Please try again.");
}
else{
g.setSelectedRoomNum(comboBox1.getSelectedItem().toString());
g.setGuestPassportNo(tfPassportNo1.getText());
g.setGuestName(tfGuestName1.getText());
g.setGuestPhoneNo(tfPhoneNo1.getText());
}
}
else if(noOfRoomsSelected=="2"){
if(name1.isEmpty()||passportNo1.isEmpty()||phoneNo1.isEmpty()
||name2.isEmpty()||passportNo2.isEmpty()||phoneNo2.isEmpty()){
JOptionPane.showMessageDialog(null, "Some Required field(s) are not entered. Please try again.");
}
else{
g.setSelectedRoomNum(comboBox1.getSelectedItem().toString());
g.setGuestPassportNo(tfPassportNo1.getText());
g.setGuestName(tfGuestName1.getText());
g.setGuestPhoneNo(tfPhoneNo1.getText());
g.setSelectedRoomNum(comboBox2.getSelectedItem().toString());
g.setGuestPassportNo(tfPassportNo2.getText());
g.setGuestName(tfGuestName2.getText());
g.setGuestPhoneNo(tfPhoneNo2.getText());
}
}
else if(noOfRoomsSelected=="3"){
if(name1.isEmpty()||passportNo1.isEmpty()||phoneNo1.isEmpty()
||name2.isEmpty()||passportNo2.isEmpty()||phoneNo2.isEmpty()||
name3.isEmpty()||passportNo3.isEmpty()||phoneNo3.isEmpty()){
JOptionPane.showMessageDialog(null, "Some Required field(s) are not entered. Please try again.");
}
else {
g.setSelectedRoomNum(comboBox1.getSelectedItem().toString());
g.setGuestPassportNo(tfPassportNo1.getText());
g.setGuestName(tfGuestName1.getText());
g.setGuestPhoneNo(tfPhoneNo1.getText());
g.setSelectedRoomNum(comboBox2.getSelectedItem().toString());
g.setGuestPassportNo(tfPassportNo2.getText());
g.setGuestName(tfGuestName2.getText());
g.setGuestPhoneNo(tfPhoneNo2.getText());
g.setSelectedRoomNum(comboBox3.getSelectedItem().toString());
g.setGuestPassportNo(tfPassportNo3.getText());
g.setGuestName(tfGuestName3.getText());
g.setGuestPhoneNo(tfPhoneNo3.getText());
}
}
else if(noOfRoomsSelected=="4"){
if(name1.isEmpty()||passportNo1.isEmpty()||phoneNo1.isEmpty()
||name2.isEmpty()||passportNo2.isEmpty()||phoneNo2.isEmpty()||
name3.isEmpty()||passportNo3.isEmpty()||phoneNo3.isEmpty()
||name4.isEmpty()||passportNo4.isEmpty()||phoneNo4.isEmpty()){
JOptionPane.showMessageDialog(null, "Some Required field(s) are not entered. Please try again.");
}
else{
g.setSelectedRoomNum(comboBox1.getSelectedItem().toString());
g.setGuestPassportNo(tfPassportNo1.getText());
g.setGuestName(tfGuestName1.getText());
g.setGuestPhoneNo(tfPhoneNo1.getText());
g.setSelectedRoomNum(comboBox2.getSelectedItem().toString());
g.setGuestPassportNo(tfPassportNo2.getText());
g.setGuestName(tfGuestName2.getText());
g.setGuestPhoneNo(tfPhoneNo2.getText());
g.setSelectedRoomNum(comboBox3.getSelectedItem().toString());
g.setGuestPassportNo(tfPassportNo3.getText());
g.setGuestName(tfGuestName3.getText());
g.setGuestPhoneNo(tfPhoneNo3.getText());
g.setSelectedRoomNum(comboBox4.getSelectedItem().toString());
g.setGuestPassportNo(tfPassportNo4.getText());
g.setGuestName(tfGuestName4.getText());
g.setGuestPhoneNo(tfPhoneNo4.getText());
}
}
else if(noOfRoomsSelected=="5"){
if(name1.isEmpty()||passportNo1.isEmpty()||phoneNo1.isEmpty()
||name2.isEmpty()||passportNo2.isEmpty()||phoneNo2.isEmpty()||
name3.isEmpty()||passportNo3.isEmpty()||phoneNo3.isEmpty()
||name4.isEmpty()||passportNo4.isEmpty()||phoneNo4.isEmpty()
||name5.isEmpty()||passportNo5.isEmpty()||phoneNo5.isEmpty()){
JOptionPane.showMessageDialog(null, "Some Required field(s) are not entered. Please try again.");
}
else{
g.setSelectedRoomNum(comboBox1.getSelectedItem().toString());
g.setGuestPassportNo(tfPassportNo1.getText());
g.setGuestName(tfGuestName1.getText());
g.setGuestPhoneNo(tfPhoneNo1.getText());
g.setSelectedRoomNum(comboBox2.getSelectedItem().toString());
g.setGuestPassportNo(tfPassportNo2.getText());
g.setGuestName(tfGuestName2.getText());
g.setGuestPhoneNo(tfPhoneNo2.getText());
g.setSelectedRoomNum(comboBox3.getSelectedItem().toString());
g.setGuestPassportNo(tfPassportNo3.getText());
g.setGuestName(tfGuestName3.getText());
g.setGuestPhoneNo(tfPhoneNo3.getText());
g.setSelectedRoomNum(comboBox4.getSelectedItem().toString());
g.setGuestPassportNo(tfPassportNo4.getText());
g.setGuestName(tfGuestName4.getText());
g.setGuestPhoneNo(tfPhoneNo4.getText());
g.setSelectedRoomNum(comboBox5.getSelectedItem().toString());
g.setGuestPassportNo(tfPassportNo5.getText());
g.setGuestName(tfGuestName5.getText());
g.setGuestPhoneNo(tfPhoneNo5.getText());
}
}
Entity class - Guest.java 实体类-Guest.java
public boolean createGuestRecord(Guest g){
boolean success = false;
DBController db = new DBController();
String dbQuery;
//step 1 - establish connection to database
try{
db.getConnection();
dbQuery = "INSERT INTO guest(selectedRoomNum,guestPassportNo,guestName,guestPhoneNo,passNo)";
dbQuery = dbQuery + " VALUES ('" + selectedRoomNum + "','" + guestPassportNo+ "','" + guestName + "','" + guestPhoneNo + "','" + passNo + "')";
//step 3 - to insert record using updateRequest method
if (db.updateRequest(dbQuery) == 1){ //record inserted
success = true;
}
}
catch(Exception e){
System.out.println(e);
}
//step 4 - close connection
db.terminate();
return success;
}
Of course you have only the last record. 当然,您只有最后一条记录。 Just look at your code:
只需看一下您的代码即可:
g.setSelectedRoomNum(comboBox1.getSelectedItem().toString());
g.setGuestPassportNo(tfPassportNo1.getText());
g.setGuestName(tfGuestName1.getText());
g.setGuestPhoneNo(tfPhoneNo1.getText());
// >>>>>>>>> Nothing here <<<<<<<<<
g.setSelectedRoomNum(comboBox2.getSelectedItem().toString());
g.setGuestPassportNo(tfPassportNo2.getText());
g.setGuestName(tfGuestName2.getText());
g.setGuestPhoneNo(tfPhoneNo2.getText());
After all these assignments g has the data for row 2, row 1 data disappeared. 在所有这些分配g中都有行2的数据后,行1的数据消失了。 So when the inserting starts g has the data from the last record only.
因此,当插入开始时,g仅具有来自最后一条记录的数据。 Insert the rows after you assign the fields to g.
将字段分配给g后,插入行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.