Я недавний пользователь базы данных h2, мне нужна помощь в синтаксисе SQL.Невозможно установить данные в textField из tableView - на клавиши Mouseclick и Up и Down (база данных H2)
Я могу извлечь данные из h2 дБ и установить его в таблицу JavaView XView, при выполнении действия mouseclick или нажатия кнопки (Up & Down стрелки) предполагаемое поведение - отобразить текущую строку данных из таблицыView в текстовые поля, ниже - код.
Я получаю следующее исключение:
Invalid value "1" for parameter "parameterIndex" [90008-193]
Я уверен, что это исключение из-за SQL грамматику уникальной в базу данных H2, как заполнитель (' "+slnoField.getText()+" ' ")
штрафа в других базах данных работ. Пожалуйста, вы можете предложить правильный синтаксис или решение. Большое спасибо.
@FXML
public void UpdateTable(){
data.clear();
try
{
conn = lrconn.getDatabaseConnection();
String sql = "SELECT * from APP_TABLE ;
pst = conn.prepareStatement(sql);
rs = pst.executeQuery();
while(rs.next())
{
data.add(new TestPOJO(
rs.getString("SLNO"),
rs.getString("NAME")
));
Table.setItems(data);
}
pst.close();
rs.close();
}
catch(Exception e1)
{
e1.printStackTrace();
}
Table.setOnMouseClicked((MouseEvent me) ->{
try{
conn = lrconn.getDatabaseConnection();
TestPOJO user = (TestPOJO)Table.getSelectionModel().getSelectedItem();
String sql = "SELECT * from APP_TABLE where SLNO =' "+slnoField.getText()+" ' ";
pst = conn.prepareStatement(sql);
pst.setString(1, user.getSLNO());
rs = pst.executeQuery();
while(rs.next()){
slnoField.setText(rs.getString("SLNO"));
nameField.setText(rs.getString("NAME"));
}
rs.close();
pst.close();
}catch(SQLException ex){
Logger.getLogger(FXMLDocumentController.class.getName()).log(Level.SEVERE, null, ex);
}
}
);
Table.setOnKeyReleased((KeyEvent e) ->{
if(e.getCode() == KeyCode.UP || e.getCode() == KeyCode.DOWN){
try{
TestPOJO user = (TestPOJO)Table.getSelectionModel().getSelectedItem();
String sql = "SELECT * from APP_TABLE where SLNO =' "+slnoField.getText()+" ' ";
pst = conn.prepareStatement(sql);
pst.setString(1, user.getSLNO());
rs = pst.executeQuery();
while(rs.next()){
slnoField.setText(rs.getString("SLNO"));
nameField.setText(rs.getString("NAME"));
catch(IOException | SQLException ex){
Logger.getLogger(FXMLDocumentController.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
);
}
Большое спасибо, Фабиан, не обратил на это внимания! – Berch