日历类中的每个日期是否都要存储一个整数?例如,6月5日可以存储数字5。我想这个功能,因为我写了一个房间预订系统,每个预订要求有不同的身份证号码。所以我想要一个日历对象来存储每天的id号。
z9smfwbn1#
我希望有更好的方法来组织你们的实体关系。如果您在一天内有多个预订请求,那么将所有这些预订ID添加到日期是没有意义的。更确切地说,在每个预订中,都有一个名为 requestedDate 并按日期存储请求的。当您需要在一个日期发出所有请求时,可以使用此字段对其进行筛选。根据你目前的需要,你可以分班上课 GregorianCalendar 类并添加此变量 bookingId 有能手和二传手。
requestedDate
GregorianCalendar
bookingId
import java.util.GregorianCalendar;public class BookingCalendar extends GregorianCalendar { private Integer bookingId; public Integer getBookingId() { return bookingId; } public void setBookingId(Integer bookingId) { this.bookingId = bookingId; }}
import java.util.GregorianCalendar;
public class BookingCalendar extends GregorianCalendar {
private Integer bookingId;
public Integer getBookingId() {
return bookingId;
}
public void setBookingId(Integer bookingId) {
this.bookingId = bookingId;
要对此进行测试:
public class CheckCal { public static void main(String[] args) { BookingCalendar cal = new BookingCalendar(); System.out.println(cal.getTime()); //Mon Mar 28 06:30:24 IST 2016 cal.setBookingId(25); System.out.println(cal.getBookingId()); //25 }}
public class CheckCal {
public static void main(String[] args) {
BookingCalendar cal = new BookingCalendar();
System.out.println(cal.getTime()); //Mon Mar 28 06:30:24 IST 2016
cal.setBookingId(25);
System.out.println(cal.getBookingId()); //25
w6lpcovy2#
没有办法将额外的信息存储在数据库中 java.util.Calendar 对象,除非实现自己的子类(例如) GregorianCalendar .如果我们可以从您的示例中推断出您要存储的数字是“一个月中的某一天”,那么您不需要存储它。
java.util.Calendar
int dayOfTheMonth = cal.get(Calendar.DAY_OF_THE_MONTH);
否则,应该使用 Map . 最好使用不可变的日期类型作为键;例如
Map
Map<LocalDate, Integer> dateNumbers = new TreeMap<>();
(如果您使用 Calendar 作为键类型和一些称为 set 操作更改键时,贴图的不变量将无效。)或者,如果您的“日历”相当于一个日期数组,那么您可以使它成为一个对象数组,其中包含一个日期字段和一个数字字段。例如:
Calendar
set
public class Booking { private Room room; private LocalDate date; private int id; // constructor, getters } public class Bookings { // data structures representing all bookings, possibly // with maps for fast lookups. // methods for looking up bookings by id, date, room // methods for adding / removing / updating bookings // methods finding free rooms for a given day or day range }
public class Booking {
private Room room;
private LocalDate date;
private int id;
// constructor, getters
public class Bookings {
// data structures representing all bookings, possibly
// with maps for fast lookups.
// methods for looking up bookings by id, date, room
// methods for adding / removing / updating bookings
// methods finding free rooms for a given day or day range
2条答案
按热度按时间z9smfwbn1#
我希望有更好的方法来组织你们的实体关系。如果您在一天内有多个预订请求,那么将所有这些预订ID添加到日期是没有意义的。更确切地说,在每个预订中,都有一个名为
requestedDate
并按日期存储请求的。当您需要在一个日期发出所有请求时,可以使用此字段对其进行筛选。根据你目前的需要,你可以分班上课
GregorianCalendar
类并添加此变量bookingId
有能手和二传手。要对此进行测试:
w6lpcovy2#
没有办法将额外的信息存储在数据库中
java.util.Calendar
对象,除非实现自己的子类(例如)GregorianCalendar
.如果我们可以从您的示例中推断出您要存储的数字是“一个月中的某一天”,那么您不需要存储它。
否则,应该使用
Map
. 最好使用不可变的日期类型作为键;例如(如果您使用
Calendar
作为键类型和一些称为set
操作更改键时,贴图的不变量将无效。)或者,如果您的“日历”相当于一个日期数组,那么您可以使它成为一个对象数组,其中包含一个日期字段和一个数字字段。例如: