使用Spring Boot JPA在数据库中插入多行

时间:2019-08-06 12:48:50

标签: mysql spring rest spring-boot jpa

我是春天的新手。我正在使用Spring Boot和JPA创建Rest API。我想向数据库MYSQL添加多行。

我创建了一个控制器,在其中我使用存储库中的save()方法将数据插入数据库中。我想向数据库添加多行,但是当我运行代码时,数据库中仅添加了最后一个值。如果我每次尝试为方法创建Userskill对象,它都可以正常工作,但每次创建新对象都是不可行的。这是控制器代码的一部分。在这里,Userskill是我要在其中插入数据的模型和表格。

    for(int i=0;i<listofskill.size();i++)
     {                           
         userskill.setUser_id(userid);           
         userskill.setSkill_id(skillRepo.findByName(listofskill.get(i)).getSkill_id());
         userskillRepo.save(userskill);          
     }                  

此代码仅将最后一行添加1行。我想将每个值添加到数据库中。

2 个答案:

答案 0 :(得分:0)

尝试

for(int i=0;i<listofskill.size();i++)
     {     
         UserSkillObject userskill  = new UserSkillObject ();
         userskill.setUserSkillId(newId);           
         userskill.setUser_id(userid);           
         userskill.setSkill_id(skillRepo.findByName(listofskill.get(i)).getSkill_id());
         userskillRepo.save(userskill);          
     }

答案 1 :(得分:0)

您可以创建Userskill列表,然后一次添加所有元素,请检查以下代码:

List<UserSkillObject> userskillList = new ArrayList<>();

for(int i=0;i<listofskill.size();i++){
   UserSkillObject userskill = new UserSkillObject();
   userskill.setUser_id(userid);           
   userskill.setSkill_id(skillRepo.findByName(listofskill.get(i)).getSkill_id());
   userskillList.add(userskill);
}
userskillRepo.saveAll(userskillList);