java - 将 SQL 结果映射到 Java 模型

标签 java sql sqlite model dao

假设我有这些表:

表A

col_a |
-----
a1
....

表B

col_b | col_c | amount
---------------------
a1    | b1    | 2.2
a1    | b2    | 4.5

表C

col_d
----
b1 
b2
....

所有这些表在 Java 中都有关联的模型。

现在我想要的是以下内容:

col_a | b2 |  ....
------------
a1    | 4.5 |(from tableB.amount)
.....

我现在的查询是这样的;

SELECT a.col_a,
  SUM(CASE WHEN c.col_d = 'b1' THEN b.amount end) AS 'Kcal',
  SUM(CASE WHEN c.col_d = 'b2' THEN b.amount end) AS 'Kjoule',
  .... etc
    FROM tableA a
    LEFT JOIN tableB b ON b.col_b = a.col_a
    LEFT JOIN tableC c ON b.col_c = c.col_d
      GROUP BY a.col_a;

结果如下:

col_a | Kcal | Kjoule
---------------------
a1    | amount | amount

这个 ResulSet 正是我所需要的,但我无法将其映射到 Java 中的模型。我如何使用这个 ResultSet 在 Java 中对其进行建模,或者我应该使用不同的方法?

最佳答案

您可以使用您的字段创建另一个实体(模型),例如:

public class Result{
  private String col;
  private BigDecimal kcal;
  private BigDecimal kjoule;
  ...
  getters and setters
}

关于java - 将 SQL 结果映射到 Java 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46663072/

相关文章:

java - 获取特定的ArrayList项

java - PhantomJSDriver 适用于 HTTP 但不适用于 HTTPS

MySQL,如何根据特定日期选择行?

sql - 如何确保两列始终等于同一事物

python - 使用 Python 快速插入多列到 Sqlite\Mysql

java - 在 Android 上移动数据库

java - 动态谷歌地图/纬度经度vars/php/java/var/basic

java - Swing WindowListener 如何否决 JFrame 关闭

mysql - 连接/合并具有相同列名的多个表

sql - SQL JOIN在一个SQL语句中包含两个表和一个表的条件