【发布时间】:2020-08-17 15:32:09
【问题描述】:
我是java新手,尝试使用spring框架。我有个问题。 例如,我有表:
- 员工(id_employee,姓名)
- employee_product(id_employee_product、id_employee、product_name)
如果我从 Employee 表中选择一个员工数据,我可以将其映射到 POJO 模型 User 中并在该模型中定义表结构,如下所示:
public class Employee {
private final int id_employee;
private final String nama;
public Employee(int id_employee, String nama){
this.id_employee = id_employee;
this.nama = nama;
}
public int getId() {
return id_employee;
}
public String getNama() {
return nama;
}
}
这是来自 jdbcTemplate 的地图:
final String sql = "SELECT id_employee, nama FROM employee";
return jdbcTemplate.query(sql, (resultSet, i) -> {
return new Employee(
resultSet.getInt("id_employee"),
resultSet.getString("nama")
);
});
这是从 1 个表中选择数据的明确示例。
我的问题是,如果我的数据是自定义查询,如何从查询中映射数据?这样我们使用连接并从该表中选择自定义字段,我是否需要为每个查询创建 POJO?
有时我只需要从员工表中选择 employee.id_employee 和 employee.name 字段。
在另一个控制器中,我需要从employee 表中选择employee.id_employee。
在另一种情况下,我只需要选择employee.name和employee_product.product_name
是否有替代方法来映射数据而不为每个案例创建 POJO?
【问题讨论】:
-
您可以使用 JPA 来访问数据。在此处查看详细信息spring.io/guides/gs/accessing-data-jpa
-
请看jooq.org那里每个查询都会返回一条记录
-
查询不重要,结果重要。您不需要映射您在查询中使用的每个表,您只需要映射您的选择的最终结果。
-
@M.Deinum 你能举个例子吗?
-
@Eklavya 好的,但怎么做?可以举个例子吗?
标签: java mysql spring spring-boot jdbctemplate