【问题标题】:Increment variable in JSP pageJSP页面中的增量变量
【发布时间】:2022-01-20 02:03:22
【问题描述】:

我正在开发一个航班预订系统,用户可以在其中登录帐户进行预订。

在我的 sql 数据库中,我有一个名为 ticket 的表,其中有一个名为 seatnum 的列。我还有一张名为飞机的桌子,其中有一列名为座位。

在我的jsp页面中,我想为买票的人分配一个随机座位号,但我只能分配这么多座位,然后飞机桌的座位就满了。

我想为分配给特定航班的座位数声明一个全局计数器,但我的计数器一直重置为 0,但我无法在 jsp 中声明静态变量。我应该怎么做?


CREATE TABLE `ticket` (
  `cid` int,
  `flight_num` int,
  `ticket_num` int NOT NULL AUTO_INCREMENT,
  `seatnum` int, 
PRIMARY KEY (`ticket_num`),
FOREIGN KEY (`flight_num`) REFERENCES flight (`flight_num`) ON UPDATE CASCADE ON DELETE CASCADE,
FOREIGN KEY (`cid`) REFERENCES user (`cid`) ON UPDATE CASCADE ON DELETE CASCADE
) 

CREATE TABLE `aircraft` (
    `2letterid` varchar(2),
    `aircraft_num` int,
    `seats` int,
PRIMARY KEY (`2letterid`, `aircraft_num`),
FOREIGN KEY(`2letterid`) REFERENCES `airline` (`2letterid`)
) 

int counter = 0;
String seats = "select seats from flight join aircraft(flight_num) " +
                "where flight_num = " + flightNum;

if (counter > seats) {
enter a waiting list
}

【问题讨论】:

    标签: java jsp mysql-workbench


    【解决方案1】:

    您可以将计数器存储在隐藏字段或会话中。

    【讨论】:

    • 那会是什么样子?
    • 如果一个用户登录一个帐户并进行航班预订然后注销,另一个用户登录并在同一航班上进行航班预订,如果我将其存储在会话中,那么当用户注销,计数器变量也会丢失。
    • 在这种情况下,您可以将其存储在 cookie 中或存储在该用户的数据库中。
    猜你喜欢
    • 2015-05-02
    • 2018-06-09
    • 2013-10-25
    • 2010-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多