into)将数据保存到数据库?

xyhw6mcr  于 2021-07-13  发布在  Java
关注(0)|答案(2)|浏览(458)

我在使用springmvc时遇到了一个问题。所以实际上我在后端有存储库、服务和控制器。
故事:我想插入数据到数据库,但在我的情况下,我不会使用我的模型,因为我将保存的数据实际上将存储到另一个数据库。所以这里我使用数据库链接。
通常我使用模型保存数据。
学生服务.java

public Student save(Student student) {
    return studentRepo.save(student);
}

学生管制员

@PostMapping("/save")
public Student save(@RequestBody(required = true) Student student) {
    return studentService.save(student);
}

但我不能用这个。
所以我的问题是:
是否可以使用sql本机查询“insert into”保存?
如果可能的话,你能给我推荐信吗?

ufj5ltwl

ufj5ltwl1#

为了使查询工作正常:-

@Repository
public interface UserRepository extends JpaRepository < UserEntity, Long > {

    @Transactional
    @Modifying
    @Query(value = "insert into students(name, user_id) values(?1, ?2)", nativeQuery = true)
    void insertDate(String firstName, Integer lastName); // sample

}
mgdq6dx1

mgdq6dx12#

代码如下:

@Entity
@Table(name="user")
public class UserDo {
    @Id @GeneratedValue
    private Integer id;
    private String name;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

}

public interface UserRepository extends CrudRepository<UserDo, Integer> {
    //save
    @Transactional(rollbackFor=Exception.class)
    @Modifying
    @Query(nativeQuery = true, value ="insert into user(id,name) values(?1,?2)")
    int addUserByName(Integer id,String name);
}

@Service
public class UserService {

    @Resource
    private UserRepository userRepository;

    @Transactional
    public void saveUser(UserDo user){
        userRepository.save(user);
    }
}

@RestController
@RequestMapping("/User")
public class UserController {
    @Resource
    private UserService userService;

    @RequestMapping("/saveUser")
    public String saveUser(){
        UserDo user = new UserDo();
        user.setName("zzz");
        userService.saveUser(user);
        return "userSave success!!";
    }

}

这会有用的
需要注意: @Transactional() 以及 @Modyifing() 是必须的。

相关问题