Я создал резервирование объектов и массив резервирования и использую JDBC для работы с базой данных о резервировании. Я могу вставить резервирование в таблицу, но я должен ввести значения всех атрибутов объекта резервирования в основном. Однако для базы данных установлено автоматическое создание идентификатора резервирования. Мой вопрос заключается в том, как я могу сделать это так, чтобы при вставке в базу данных вместо того, чтобы я ввел идентификатор резервирования в основном, что, когда я вставляю в таблицу, вместо этого вводится автоматически сгенерированный идентификатор. Это мой первый опыт работы с базами данных, поэтому я немного новичок в этом.JDBC, объекты, определенные пользователем, и администратор объектов, определенных пользователем
бронирование
/** The Reserve ID. */
int ReserveID;
/** The Room ID. */
int RoomID;
/** The Guest ID. */
int GuestID;
/** The Stay duration. */
int StayDuration;
/** The check. */
boolean Check;
public reservation()
{
ReserveID = 0;
GuestID = 0;
RoomID = 0;
StayDuration = 0;
Check = false;
}
/**
* Instantiates a new reservation.
*
* @param reserveID the reserve ID
* @param roomID the room ID
* @param guestID the guest ID
* @param stayDuration the stay duration
* @param check the check
*/
public reservation(int reserveID, int guestID, int roomID, int stayDuration, boolean check) {
ReserveID = reserveID;
GuestID = guestID;
RoomID = roomID;
StayDuration = stayDuration;
Check = check;
}
ArrayList оговорок:
/** The res list. */
ArrayList<reservation> resList;
/**
* Instantiates a new reservation collection.
*/
public reservationCollection()
{
resList = new ArrayList<reservation>();
}
/**
* Adds the reservation.
*
* @param r the r
* @return true, if successful
*/
public boolean addReservation(reservation r) throws SQLException {
resList.add(r);
reservationJDBC.insertReservation(r);
return true;
}
JDBC метод класса вставки:
public static boolean insertReservation(reservation newReservation) throws SQLException {
Connection dbConnection = null;
Statement statement = null;
String insRes = "INSERT INTO " + RESERVATIONTABLE
+ " (RESERVATION_ID, GUEST_ID, ROOM_ID, DURATION, STATUS) VALUES ("
+ newReservation.getReserveID() + ", "
+ newReservation.getGuestID() + ", "
+ newReservation.getRoomID() + ", "
+ newReservation.getStayDuration() + ", "
+ newReservation.getCheck() + ")";
try {
dbConnection = getDBConnection();
statement = dbConnection.createStatement();
statement.executeUpdate(insRes);
System.out.println("Record is inserted into DBUSER table!");
} catch (SQLException e) {
System.out.println(e.getMessage());
} finally {
if (statement != null) {
statement.close();
}
if (dbConnection != null) {
dbConnection.close();
}
}
return false;
}
главная:
System.out.println("Hotel Management System - Test 1");
reservationCollection myCollection = new reservationCollection();
boolean on = true;
while(on){
reservation r = new reservation(45, 34, 56, 78, false);
if(myCollection.addReservation(r)){
System.out.println("Success! The reservation has been inserted to database");
} else {
System.out.println("Failed! There has been a problem with inserting reservation to the database");
}
on = false;
}
нормально, что таблица настроена на автоматическое увеличение, но проблема заключается в конструкторе по умолчанию резервирования, который я устанавливаю для резервированияID = 0, и над написанием автоматически сгенерированного значения. – Dan
Что вы понимаете, переписывая? Является ли это в базе данных, значение становится перезаписанным? – developer
Я исправил проблему, но спасибо за помощь – Dan