1

我一直忙于一个练习,我需要将一个中奖彩票号码(生成的)与数据库表中的现有彩票号码进行比较。

我设法遍历数据库中的所有号码,然后找到与中奖号码组匹配的号码,但我很难确定在哪组彩票号码中找到了匹配号码。
这些数字分别放置在每个数据库列中。在这里,我检索每一行中的值。

ResultSet set = state.executeQuery("SELECT * FROM numberLotto");
    while(set.next())
    {
                String[]row = new String[7]; 
                row[0] = set.getString(1);                   
                row[1] = set.getString(2);
                row[2] = set.getString(3);
                row[3] = set.getString(4);
                row[4] = set.getString(5);
                row[5] = set.getString(6);
                row[6] = set.getString(7);
                entries.add(row);
            }
String[][]listOfNumbers = entries.toArray(new String[entries.size()][7]);

然后我循环遍历listOfNumbers 并将所有值与winningNumber 的值进行比较。

Object[]winningNumber = lottoDrawString.toArray();   

        for (int i=0; i < listOfNumbers.length; i++)
        {
            for (int j=0; j < listOfNumbers[i].length; j++)
            {
                for(int k = 0; k < winningNumber.length; k++)
                {
                    System.out.println(listOfNumbers[i][j]);

                    if(listOfNumbers[i][j].equals(winningNumber[k]))
                    {
                        System.out.println("There is a match " + listOfNumbers[i][j] + " and " + winningNumber[k]);
                    }
                }

            }
        }

如何检索找到匹配项的行?

亲切的问候

4

3 回答 3

2

为什么不只是做

SELECT * FROM numberLotto WHERE FirstNumber = n1 AND SecondNumber = n2 AND ...

就此而言,为什么不将乐透号码作为七位字符串存储在数据库中呢?

于 2012-04-03T21:00:17.510 回答
0

一个想法可能是将行号添加为表字段,检索它,而不是创建和检查数字,而是使用一个对象来做,比如说 Loterry。

类彩票

{ int 行,值;

}

您检查值字段,如果它适合您的检查,则返回行。希望能帮助到你 :)

于 2012-04-03T21:00:38.053 回答
0

您无需进行太多“编程”即可完成搜索。写一个查询来为你做这件事:

String query = "SELECT * FROM numberLotto WHERE number = " + winningNumber

以上假设您的彩票号码存储在标记为 的字段中"number"。您也可以使用ANDorOR子句来搜索多个匹配项。

于 2012-04-03T21:03:18.940 回答