2015-03-01 1 views
0

У меня возникли проблемы с попыткой получить gregorian календарь, напечатанный на моем коде, и когда я пытаюсь его поместить, это дает мне исключение IllegalArgumentException.Объект доступа к данным Java Get GregorianCalendar

код ниже мой конструктор

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, [email protected], 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, [email protected], gamerTag=Quinesia, birthDate=null] 

надеюсь, что это помогает

+0

Что такое EarthSet? Он не определен нигде в образцах кода, которые вы показываете. – Bobulous

+0

ResultSet resultSet = statement.executeQuery (sqlString); Это результатSet – user1879973

+0

Измените свой вопрос, чтобы добавить определение 'resultSet', чтобы ваш вопрос был полным и легким для чтения. – Bobulous

ответ

0
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); 

Кажется, вы не выполняете setDate для вашего объекта Player, поэтому он всегда имеет nu прилагается.

+0

вы имеете в виду вот так? \t \t \t \t players.setBirthDate (resultSet.getDate (BIRTHDATE)); Я получаю недопустимое нарушение, когда я это делаю – user1879973

+0

и что именно возвращает 'resultSet.getDate (BIRTHDATE)'? –

 Смежные вопросы

  • Нет связанных вопросов^_^