java—如何在SpringBoot中生成唯一的随机数并存储在mysql表中

vd2z7a6w  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(642)

我想开发一个springbootweb应用程序,在那里我可以生成一组数字并存储在一个表中。例如
这是我的控制器

@RequestMapping("/testInteger")
    public String genint(com.randomdata.entity.Random random) {

        int intRange;
        try {

            for (int i = 0; i < 10; i++) {
                intRange = generateRandomIntIntRange(1000, 10000);
                String string = Integer.toString(intRange);
                random.setRandomNumber(string);
                randomDao.save(random);
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return "index";

    }

这是我的随机数生成方法。

public static int generateRandomIntIntRange(int min, int max) {
        Random r = new Random();
        return r.nextInt((max - min) + 1) + min;

    }

但它可以在db表和其他显示中保存1个数字
休眠:更新随机集random\u number=?其中id=?
休眠:更新随机集random\u number=?其中id=?
休眠:更新随机集random\u number=?其中id=?
休眠:更新随机集random\u number=?其中id=?
休眠:更新随机集random\u number=?其中id=?
休眠:更新随机集random\u number=?其中id=?
休眠:更新随机集random\u number=?其中id=?
休眠:更新随机集random\u number=?其中id=?
休眠:更新随机集random\u number=?其中id=?
当然,我错过了一些东西。但我还找不到。

oalqel3c

oalqel3c1#

问题是每次保存一个随机数时都使用同一个对象,所以每次都在更新同一个对象。您应该尝试创建如下新对象:

for (int i = 0; i < 10; i++) {
  intRange = generateRandomIntIntRange(1000, 10000);
  String string = Integer.toString(intRange);
  random = new com.randomdata.entity.Random();
  random.setRandomNumber(string);
  randomDao.save(random);
}

相关问题