java - 使用 Java 查询从数据库中选择值并将它们用作变量并将其插入另一个表中

标签 java mysql sql netbeans jdbc

因此,我从数据库表中选择了一些值,将它们分成小组,然后通过将所选值放入 ArrayList 中并获取该 的大小,将其插入数据库中的另一个表中>ArrayList 进行数学计算。

但是在我进行数学计算之后,我只剩下包含我需要的信息的变量。但是,我不能将它们放入另一个表中,因为它们与我一开始选择的东西不同。它们现在只是数字。我确实需要将这些变量插入到另一个表中,但是当我这样做时,我收到外键约束失败错误,我认为这是因为该变量不再是外键,而只是一个数字。我不知道是否有解决方案,但它会帮助我分配。这是我的代码:

private void spelersVerdelenMouseClicked(java.awt.event.MouseEvent evt) {                                             

String comboBoxValue = jComboBoxDeelnemer.getSelectedItem().toString();
String spelerRonde1 = "SELECT lid, toernooi FROM deelnemer where     toernooi LIKE " + comboBoxValue ; 

ArrayList<String> dlnmrs = new ArrayList<>();
try {

  PreparedStatement pstat = con.prepareStatement(spelerRonde1);
  ResultSet rs = pstat.executeQuery();
    while (rs.next()) {

        dlnmrs.add(rs.getString("lid"));
        for (int i = 0; i < dlnmrs.size(); i++) {
        }
    }

} catch (Exception e) {
    JOptionPane.showMessageDialog(rootPane,e);
}

verdeelTafels(1, dlnmrs.size()); 

private void verdeelTafels(int ronde, int aantalDeelnemers) {

System.out.println(aantalDeelnemers);

int aantalTafels = (int) aantalDeelnemers / AANTAL_SPELERS_PER_TAFEL;
int restSpelerPerRonde = aantalDeelnemers % AANTAL_SPELERS_PER_TAFEL;

if (aantalDeelnemers == (AANTAL_SPELERS_PER_TAFEL * 2)) {
    aantalTafels = 1;
    restSpelerPerRonde = 0;
}

for (int i = 0; i < aantalTafels; i++) {
    int maxSpelersPerTafel = AANTAL_SPELERS_PER_TAFEL;
    if (i == aantalTafels - 1) {
        maxSpelersPerTafel += restSpelerPerRonde;
    }
    System.out.println("Tafel " + (i + 1) + " heeft " + maxSpelersPerTafel + " deelnemers.");

    //spelersDoorlopen

    for (int j = 0; j < maxSpelersPerTafel; j++) {

  String query = "insert into spelerPerTafel (lid,tafel,ronde) select lcode,tfcode,rcode from lid,tafel,ronde ";
  try{ 
         PreparedStatement pstat = con.prepareStatement(query);

         pstat.execute(query);
      }
  catch (Exception e) {
    JOptionPane.showMessageDialog(rootPane,e);
        System.out.println(e);
      } 

    }

  }

}

最佳答案

  • 尝试

    String query = "insert into tableA select * from tableB where XXX";

  • 使用where条件可以实现对tableB进行划分

关于java - 使用 Java 查询从数据库中选择值并将它们用作变量并将其插入另一个表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28227726/

相关文章:

带有 super 关键字的 Java 泛型方法

java - 对象 vector ,使用 setElementAt/set

php - 使用 php 循环从目录创建缩略图

mysql - 如何访问子选择中的外部列

MYSQL:寻找 friend 之间相似和独特的喜好

Java hibernate : How to?

java - 为什么JPanel的paintComponent(Graphics g)不运行?

mysql - 什么会导致连接比分成两个查询慢?

mysql - 用于比较的子查询

java.sql 导入不起作用