Я использую SQlite в качестве базы данных и кодирую в Java функции newID();
, updateTable();
и updateData();
приведены ниже
public void newID(){
String sql = "select count(*) ID from CashierDetails";
try{
pst= conn.prepareStatement(sql);
rs = pst.executeQuery();
if(rs.next()){
int id = ((Number) rs.getObject(1)).intValue() + 1;
jTextField1.setText("" + id);
pst.close();
rs.close();
}
}catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
}
public void updateTable()
{
String sql = "select * from CashierDetails";
try{
pst = conn.prepareStatement(sql);
rs = pst.executeQuery();
jTable5.setModel(DbUtils.resultSetToTableModel(rs));
pst.close();
rs.close();
}
catch (Exception e)
{
JOptionPane.showMessageDialog(null,e);
}
}
public void updateData ()
{
String sql = " update CashierDetails set "
+ " CashierName = '"+jTextField2.getText()+"',"
+ " SecretQ = '"+jComboBox1.getSelectedItem()+"',"
+ " Answer = '"+jTextField18.getText()+"',"
+ " MobileNo = '"+jTextField3.getText()+"',"
+ " Address = '"+jTextField5.getText()+"',"
+ " Email = '"+jTextField4.getText()+"',"
+ " Password = '"+jPasswordField1.getText()+"',"
+ " ConfirmPass = '"+jPasswordField2.getText()+"'"
+ " where CashierID = "+jTextField1.getText();
String sql2 = "update CashierAccount set "
+ " Username = '"+jTextField2.getText()+"',"
+ " SecretQ = '"+jComboBox1.getSelectedItem()+"',"
+ " Password = '"+jPasswordField1.getText()+"',"
+ " ConfirmPassword = '"+jPasswordField2.getText()+"',"
+ " Answer = '"+jTextField18.getText()+"'"
+ " where CashierID = "+jTextField1.getText();
try
{
pst = conn.prepareStatement(sql);
pst.execute();
pst.close();
rs.close();
pst = conn.prepareStatement (sql2);
pst.execute ();
JOptionPane.showMessageDialog(null, "Cashier Details have been updated");
pst.close();
rs.close();
updateTable();
newID();
}
catch (Exception e)
{
e.printStackTrace();
JOptionPane.showMessageDialog(null, e);
}
}
функция не выдает ошибок и не t генерирует какие-либо исключения, вместо этого отображается диалоговое окно с сообщением «Сведения о кассе обновлены», но в таблице SQLite CashierDetails сведения не обновляются ни в таблице CashierAccount, а ниже - таблица SqLite Таблица CashierDetails Таблица CashierAccount
Теперь, если бы я должен был заполнить таблицу через SQLite studio (т.е. создать строку и ввести данные из SQLite Studio), то указанная строка c может быть обновлена с помощью updateData();
функция