Я веб-разработчик. Я из Javascript и фон Typescript. Несколько дней go я решил изучить JDB C с Oracle. Я создал очень простой c JDB C проект с JavaFX и Oracle. (На самом деле я пытаюсь имитировать c Microsoft Azure). У меня также есть поле Date, которое будет получать значение от встроенного компонента DateFicker JavaFx. Вот некоторая полезная информация:
Столбцы в таблице: mybranches
- имя_в ветви varchar (50)
- дата_ответа_дата
- branch_pulled_from varchar (50)
Проблема в том, что 2-й столбец, т.е. поле branch_created_on
.
Вот мой код java: DataService. java
import java.time.LocalDate;
...
public class DataService {
Connection con;
PreparedStatement pstmt;
static String branch_name="";
static LocalDate branch_created_on;
static String branch_pulled_from="";
DataService() {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","tiger","scott");
}
catch(Exception e){
System.out.println(e);
}
}
public void getValue() {
branch_name=AddNewBranchRecord.branchNameTextField.getText();
branch_created_on=AddNewBranchRecord.datePicker1.getValue();
branch_pulled_from=(String) AddNewBranchRecord.combo_box_1.getValue();
}
public void putValue() {
System.out.println("Branch name: "+branch_name);
System.out.println("Branch created on: "+branch_created_on);
System.out.println("Branch pulled from: "+branch_pulled_from);
}
public void insertRecord() {
getValue();
try {
pstmt=con.prepareStatement("INSERT INTO mybranches (branch_name,branch_created_on,branch_pulled_from) VALUES (?,?,?)");
pstmt.setString(1,branch_name);
pstmt.setObject(2,branch_created_on);
pstmt.setString(3,branch_pulled_from);
pstmt.execute();
} catch (SQLException ex) {
Logger.getLogger(DataService.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
Вывод putValue
также является правильным:
Имя ветви: 1000-test
Ветвь, созданная в: 2020-02- 11
Ветвь извлечена из: master
Но когда я вызываю insertRecord
метод, я получаю это исключение:
SEVERE: null
java. sql .SQLException: недопустимый тип столбца
at oracle .jdb c .driver.DatabaseError.throwSqlException (DatabaseError. java: 112)
...
Это исключение не существует, если я удалю этот столбец даты из таблицы базы данных, а также код java. Мне очень жаль, если я задаю глупый вопрос. Я из Angular и реагирую фоном. Пожалуйста, поправьте меня.