[英]Java Data Access Object Get GregorianCalendar
我一直在努力將gregorian日歷打印在我的代碼上,當我試圖把它放到它時,它給了我一個IllegalArgumentException。
下面的代碼是我的構造函數
private int _identifier;
private String _fName;
private String _lName;
private String _emailAddress;
private String _gamerTag;
private GregorianCalendar _birthDate;
public Player(int identifier, String fName, String lName,
String emailAddress, String gamerTag, GregorianCalendar birthDate) {
_identifier = identifier;
_fName = fName;
_lName = lName;
_emailAddress = emailAddress;
_gamerTag = gamerTag;
_birthDate = birthDate;
這是我的吸氣鬼和二傳手
/**
* @return the birthDate
*/
public GregorianCalendar getBirthDate() {
return _birthDate;
}
/**
* @param string the birthDate to set
*/
public void setBirthDate(GregorianCalendar birthDate) {
_birthDate = birthDate;
}
/**
* @param birthDate the birthDate to set
*/
@Deprecated
public void setBirthDate(Date date) {
_birthDate = new GregorianCalendar();
}
/*
* Set the birthdate
*
* @param year the year, includes the century, ex. 1967
* @param month the month - must be 0-based
* @param day the day of the month - 1-based
*/
public void setBirthDate(int year, int month, int day) {
_birthDate = new GregorianCalendar();
_birthDate.set(Calendar.YEAR, year);
_birthDate.set(Calendar.MONTH, month);
_birthDate.set(Calendar.DAY_OF_MONTH, day);
}
跟進是我的數據訪問對象代碼,代碼給出了錯誤
String sqlString = String.format("SELECT * FROM %s WHERE %s = '%s'", _tableName, GAMERTAG , gamertag);
ResultSet resultSet = statement.executeQuery(sqlString);
players = new Player();
players.setIdentifier(resultSet.getInt(ID));
players.setfName(resultSet.getString(FIRSTNAME));
players.setlName(resultSet.getString(LASTNAME));
players.setEmailAddress(resultSet.getString(EMAIL));
players.setGamerTag(resultSet.getString(GAMERTAG));
resultSet.getDate(BIRTHDATE);
和BIRTHDATE的靜態對象
public static final String TABLE_NAME = "Players";
public static final String ID = "ID";
public static final String FIRSTNAME = "FIRSTNAME";
public static final String LASTNAME = "LASTNAME";
public static final String EMAIL = "EMAIL";
public static final String GAMERTAG = "GAMERTAG";
public static final String BIRTHDATE = "BIRTHDATE";
我想要它有如下代碼的結果
2001-10-03T00:00:00.000Z
Player [id=4, firstName=Jeanette, lastName=Price, emailAddress=priceizrite@hotmail.com, gamerTag=Quinesia, birthDate=java.util.GregorianCalendar[time=1002092400000,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="America/Vancouver",offset=-28800000,dstSavings=3600000,useDaylight=true,transitions=189,lastRule=java.util.SimpleTimeZone[id=America/Vancouver,offset=-28800000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=3,startMonth=2,startDay=8,startDayOfWeek=1,startTime=7200000,startTimeMode=0,endMode=3,endMonth=10,endDay=1,endDayOfWeek=1,endTime=7200000,endTimeMode=0]],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2001,MONTH=9,WEEK_OF_YEAR=40,WEEK_OF_MONTH=1,DAY_OF_MONTH=3,DAY_OF_YEAR=276,DAY_OF_WEEK=4,DAY_OF_WEEK_IN_MONTH=1,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,MILLISECOND=0,ZONE_OFFSET=-28800000,DST_OFFSET=3600000]]
這是我現在的結果
Player [identifier=4, fName=Jeanette, lName=Price, emailAddress=priceizrite@hotmail.com, gamerTag=Quinesia, birthDate=null]
希望這可以幫助
players = new Player();
players.setIdentifier(resultSet.getInt(ID));
players.setfName(resultSet.getString(FIRSTNAME));
players.setlName(resultSet.getString(LASTNAME));
players.setEmailAddress(resultSet.getString(EMAIL));
players.setGamerTag(resultSet.getString(GAMERTAG));
resultSet.getDate(BIRTHDATE);
看來你沒有為你的Player對象執行setDate,這就是為什么它總是附加null。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.