[英]How to retrieve the complete xml (DataType as XMLTYPE) from the specific column using jdbc and java-swing
[英]Java-Swing: Retrieve and update details in DB
我是初學者,我正在開發一個帶有一些 CRUD 功能的 Swing 桌面應用程序。 雖然我的插入和刪除工作正常,但更新和檢索卻沒有。
這些是服務方法:
public void select(){
String sql = "SELECT num_of_working_days FROM working_days_and_hours";
try {
connection = SQLite_Connection.connect();
stmt = connection.createStatement();
resultSet = stmt.executeQuery(sql);
System.out.println("DB status: "+ resultSet);
} catch (Exception ex) {
System.out.println(ex.toString());
//Logger.getLogger(Services.class.getName()).log(Level.SEVERE, null, ex);
}finally {
// Services.colsedConnections();
}
}
public void update(int id, String num) {
String sql = "UPDATE working_days_and_hours SET num_of_working_days = '"+num+"' WHERE id = '"+id+"'";
try {
connection = SQLite_Connection.connect();
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setInt(1, id);
preparedStatement.setString(2, num);
preparedStatement.executeUpdate();
System.out.println("DB status: "+ preparedStatement);
} catch (Exception ex) {
System.out.println(ex.toString());
//Logger.getLogger(Services.class.getName()).log(Level.SEVERE, null, ex);
}finally {
// Services.colsedConnections();
}
}
我只想檢索文本字段的值並更新文本字段中的值。
到目前為止,這是我嘗試實現它的方式:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
//here I have set id as 1 for the sake of testing
numberOfDays.update(1, jTextField1.getText());
}
private void jTextField2ActionPerformed(java.awt.event.ActionEvent evt) {
jTextField2.setText(numberOfDays.select());
}
但是對於更新,我收到 ArrayIndexOutBounds 錯誤。 對於檢索,我不允許無效。
String sql = "UPDATE working_days_and_hours SET num_of_working_days = '"+num+"' WHERE id = '"+id+"'";
這不是您為PreparedStatement
構建 SQL 的方式。 PreparedStatement
是添加一個“?” 作為令牌,然后用有效數據替換令牌。
這使得 SQL 更易於編碼和閱讀,並且會減少出現語法錯誤的機會。
PreparedStatement
的格式類似於:
String sql = "UPDATE Page SET Title = ? WHERE Name = ?";
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setString( 1, title );
stmt.setString( 2, name );
stmt.executeUpdate();
stmt.close();
其中“title”和“name”是包含數據的變量。
所以這不是 Swing 的問題。 首先讓 SQL 處理硬編碼數據。 然后擔心從文本字段或其他 Swing 組件獲取數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.