gpt4 book ai didi

java - 使用 JDBI ResultSetMapper 映射可选字段

转载 作者:太空宇宙 更新时间:2023-11-04 13:50:32 25 4
gpt4 key购买 nike

我有一个实体,我有一个 EntityMapper 来映射该实体具有的所有属性。

然后,在我的 DAO 界面中,我使用 @SqlQuery 从数据库中获取

  • 有时所有实体的属性 --> 这很好
  • 但有时我只获取某些属性 --> 这里映射器失败并显示“SQLException Column xxx not found”

针对此问题的建议解决方案是什么?我希望每个实体只有一个映射器,并且实际上不会一直获取所有属性。

最佳答案

    private List<String> getFieldsPresentInResultSet(ResultSet rs) throws SQLException {
List<String> fieldsPresentInResultSet = new ArrayList<>();
ResultSetMetaData metaData = rs.getMetaData();
for(int index =1; index <= metaData.getColumnCount(); index++) {
fieldsPresentInResultSet.add(metaData.getColumnLabel(index));
}
return fieldsPresentInResultSet;
}

使用此函数获取结果集中存在的所有字段。然后您可以检查结果集中是否存在该字段。比如,

  List<String> fields = getFieldsPresentInResultSet(rs);
String field = fieldfields.contain("fieldName") ? rs.getString("fieldName") ? null ;

这样您就可以为每个实体拥有一个映射器。你可以查看这个library还有。

关于java - 使用 JDBI ResultSetMapper 映射可选字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30328980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com