String.Iを使用して日付ピッカーを作成したとして、私は、MySQLのテーブルに日付ピッカーから日付を保存しようとしていますしかし、私は文字列の形式で日付を保存しようとすると、このエラーを返します:java.time.DateTimeException:TemporalAccessorからにLocalTimeを取得できません:タイプの2017年10月29日java.time.LocalDate
java.time.DateTimeException:java型のTemporalAccessor:2017-10-29からLocalDateTimeを取得できません。 time.LocalDate
まず、ユーザーからの入力データを観測可能なリストに追加し、それをテーブルにユーザーに表示します。その後、ユーザーが必要な関連データの追加を完了したら、観測可能なリストデータをmysqlデータベースに挿入します。
datePickerデータを観測可能リストにString型で追加したいとします。
私の質問は、日付ピッカーの値を文字列に変更し、それを観測可能リストに渡す方法です。私のコードでは.getEditor()。getText()を使用しましたが、上記のエラーが発生します。
マイdatePickersは、データベース内T_startDateとT_endDate列のデータ型がVARCHAR(50)である
fromDateCreateTask
toDateCreateTask
に標識されます。 MySQLのテーブルに追加
void addTaskToTable(){
AllTaskData.add(new Task(
Integer.parseInt(taskNumberCreateTask.getText()),
taskNameCreateTask.getText(),
getProjectId(projectSelectedCombobox.getValue()),
taskStatusCreateTask.getText(),taskInformationCreateTask.getText(),
(String) teamHeadComboBoxCreateTask.getValue(),
fromDateCreateTask.getEditor().getText(),
toDateCreateTask.getEditor().getText(),
timeSpan()));
createTaskTable.setItems(AllTaskData);
taskNameCreateTask.clear();
fromDateCreateTask.getEditor().clear();
toDateCreateTask.getEditor().clear();
teamHeadComboBoxCreateTask.setValue("Team Lead");
taskInformationCreateTask.clear();
taskCount++;
taskNumberCreateTask.setText(Integer.valueOf(getTotalNumberOfTasks() + 1+taskCount).toString());
}
:
public void createMultipleTasks() {
String sql = " insert into Task (T_id, T_name, P_projectCode, T_status, T_Description, T_lead,T_startDate,T_endDate,T_timespan)"
+ " values (?, ?, ?, ?, ?,?,?,?,?)";
try {
for(Task userTasks: AllTaskData){
int taskNumber = userTasks.getTaskNumber();
String taskName = userTasks.getTaskName();
String taskStatus = userTasks.getTaskStatus();
String taskDescription = userTasks.getTaskInformation();
String teamLead = userTasks.getTaskTeamMemberAssigned();
String startingDate = userTasks.getTaskFromDate();
String endingingDate = userTasks.getTaskToDate();
int taskcompletionTime = userTasks.getTaskTimeSpan();
int projectId = userTasks.getProjectCode();//getProjectId(projectSelectedCombobox.getValue());
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setInt(1, taskNumber);
preparedStatement.setString(2, taskName);
preparedStatement.setInt(3, projectId);
preparedStatement.setString(4, taskStatus);
preparedStatement.setString(5, taskDescription);
preparedStatement.setString(6, teamLead);
preparedStatement.setString(7, startingDate);
preparedStatement.setString(8,endingingDate);
preparedStatement.setInt(9, taskcompletionTime);
try{
preparedStatement.execute();
}catch (Exception e) {
DBConnection.infoBox("Error Saving Data", "Fail", null);
e.printStackTrace();
}
}
try {
DBConnection.infoBox("Click ok to cancel this message", "Sucess", "Saving of tasks has been successfull");
} catch (Exception e) {
DBConnection.infoBox("Error Unable to Open View", "Fail", null);
e.printStackTrace();
}
} catch (Exception e) {
DBConnection.infoBox("Error Saving Data", "Fail", null);
e.printStackTrace();
}
}
関数を呼び出す:
@FXML
void handleAddNewTaskAction(ActionEvent event) {
if (taskNameCreateTask.getText()==null || taskNameCreateTask.getText()==" " || taskNameCreateTask.getText().isEmpty() ||
fromDateCreateTask.getValue() == null || toDateCreateTask.getValue() == null ||
teamHeadComboBoxCreateTask.getValue() == null || teamHeadComboBoxCreateTask.getValue().isEmpty() || teamHeadComboBoxCreateTask.getValue() == "Team Lead" ||
taskInformationCreateTask.getText() == null || taskInformationCreateTask.getText().isEmpty() || taskInformationCreateTask.getText() == " "
){
DBConnection.infoBox("Please enter text in missing fields", "Error Adding Data", "nil");
}else{
addTaskToTable();
}
}
あなたはタスクテーブルのスキーマを追加してもらえますか? – melanzane