Sqlite 将listview项作为新项单独插入数据库 Tl:dr

Sqlite 将listview项作为新项单独插入数据库 Tl:dr,sqlite,listview,for-loop,javafx,Sqlite,Listview,For Loop,Javafx,我有一个包含项目的列表视图。我希望将每个单独的项作为新条目插入到sqlite数据库中。现在,我只能将所有项目作为单个条目插入数据库 我能够从数据库中正确填充列表。如果我在SqliteStudio中手动输入项目。添加的项目将显示为单个项目 在列表中添加代码设置 用于填充列表的代码 将listview项添加到数据库的错误代码 从网上看。我想我需要一个for循环来计算列表中的各个项目 for(int i = listchosedescription.size(); i != 0; i--){ 然后,

我有一个包含项目的列表视图。我希望将每个单独的项作为新条目插入到sqlite数据库中。现在,我只能将所有项目作为单个条目插入数据库

我能够从数据库中正确填充列表。如果我在SqliteStudio中手动输入项目。添加的项目将显示为单个项目

在列表中添加代码设置 用于填充列表的代码 将listview项添加到数据库的错误代码 从网上看。我想我需要一个for循环来计算列表中的各个项目

for(int i = listchosedescription.size(); i != 0; i--){
然后,我需要将每个条目添加到批处理中,然后执行批处理

我还了解如何从listview中获取单个项。所以我觉得有点卡住了,所以我想我会贴出来寻求指导

for (int i = listchosedescription.size(); i != 0; i--) {
                statement2.setString(1, String.valueOf(listchosedescription.subList(i - 1, i)));
                statement2.setInt(2, Integer.parseInt(labelidnew.getText()));
                statement2.addBatch();
            }
            statement2.executeBatch();
在这个for循环的中,我有三条语句:

  • 我创建了一个整数(I),它计算我的observableList的size()
  • 只要size()不等于0,我就运行循环(只要它大于零,我就应该运行循环)
  • 每次循环运行时,我将整数(I)减少1
  • 在循环中,我像往常一样添加了两条语句。但observableList中的值是通过其子列表访问的。我使用我的整数(I)访问该位置

  • i-1将确保我达到正确的FROM索引
  • 我将确保达到正确的toIndex
  • 最后,我在循环内添加批处理,并在循环后执行批处理

    在这个for循环的中,我有三条语句:

  • 我创建了一个整数(I),它计算我的observableList的size()
  • 只要size()不等于0,我就运行循环(只要它大于零,我就应该运行循环)
  • 每次循环运行时,我将整数(I)减少1
  • 在循环中,我像往常一样添加了两条语句。但observableList中的值是通过其子列表访问的。我使用我的整数(I)访问该位置

  • i-1将确保我达到正确的FROM索引
  • 我将确保达到正确的toIndex

  • 最后,我在循环内添加批处理,并在循环后执行批处理。

    我不理解代码的
    子列表部分。为什么不使用
    listchosdescription.get(i)
    ?就像你把循环的
    复杂化了一样。很有趣,塞德里克。我才刚开始,所以我做的事情看起来很复杂。我不理解你代码的
    子列表部分。为什么不使用
    listchosdescription.get(i)
    ?就像你把循环的
    复杂化了一样。很有趣,塞德里克。我才刚开始,所以我会做一些看起来很复杂的事情。
    
    Connection conn = dbConnection.getConnection();
    PreparedStatement statement2 = conn.prepareStatement(sqlDesInsert);    
    statement2.setString(1, String.valueOf(descriptionschosen.getItems()));
    statement2.setInt(2, Integer.parseInt(labelidnew.getText()));
    statement2.execute();
    
    for(int i = listchosedescription.size(); i != 0; i--){
    
    for (int i = listchosedescription.size(); i != 0; i--) {
                    statement2.setString(1, String.valueOf(listchosedescription.subList(i - 1, i)));
                    statement2.setInt(2, Integer.parseInt(labelidnew.getText()));
                    statement2.addBatch();
                }
                statement2.executeBatch();