使用java spring boot在postgres中获取和插入数据的通用方法



假设我们有一个实体类- User。

import java.util.UUID;
@Entity
public class User {
private UUID id;
private String firstName;
private String lastName;
private String dateOfBirth;
}

我们的主要目的是从另一个DB复制数据到我们的DB。
首先,我们必须使用原始查询从另一个数据库获取数据

select first_name, last_name from user

返回UserList。

//一些业务逻辑

然后,我们必须编写一个原始查询来复制-

"插入用户(id、first_name、last_name)值 (?,?,?,?)& ";

现在我们必须迭代UserList并使用PreparedStatement来存储数据,如下所示:-

for(User user:userList){
preparedStatement.setObject(1,UUID);
preparedStatement.setObject(2,user.firstName());
preparedStatement.setObject(3,user.lastName());
preparedStatement.execute();
}

我们可以假设实体类的字段将类似于我们的数据库和我们正在复制的其他数据库中的用户表列。
现在,我们必须为数百个实体编写数千行代码。你能给我一些简化这个过程的建议吗?比如使用泛型或者其他什么?

我正在考虑在泛型实体类中应用反射。首先,我将从T中获取字段名,创建字符串,每次使用带有反射api的preparedStatement调用setObject方法。你能给我一些更好的建议吗?

您应该使用ORM。例如,JpaCrudRepositories允许你在没有手动映射的情况下完成所有这些。这几乎是orm的面包和黄油。

由于@Entity注释,我假设您已经在使用JPA…

最新更新