2016-07-15 88 views
1

我可以使用查询结果(Spring JDBC)从数据库存储在Java POJO中吗?查询结果不存储在POJO中?

我有很多查询在我的项目中使用?我不想将这些大的查询列名映射到POJO变量值 请建议一些方法?

+1

哟不够精确。你想如何存储数据?你想从查询中获得什么样的数据类型? – davidxxx

回答

1

RowSet

您可以从您的ResultSet一个RowSet通过JDBC获得。

该的扩展RowSet接口用于将数据行存储在JVM中的内存中。即使在关闭与数据库的连接之后,您仍然可以继续访问CachedRowSet

Oracle提供CachedRowSet的开放源代码免费(GPL 2许可证)实现。这可能与您的Java安装捆绑在一起。否则,您可以分别获取源代码。看到这个问题,Implementations of RowSet, CachedRowSet etc。请参阅Oracle Tutorial。令人惊讶的是,接口及其实现几乎没有受到重视。他们对我来说似乎是个好主意。我曾亲自使用Oracle提供的CachedRowSet实现成功地在一个小型项目中使用。

+0

Thanks Basil Bou –

1

如何仅查询您感兴趣的列? 做映射的本质就是少做点事。否则你将需要使用普通的Java jdbc。

你的对象和数据库表之间没有任何关系。要么使用普通的jdbc,要么明确地提及表和列。要么 。你做一个预映射,这样你就不必一直写表和列名,这很容易出错。

总结

  • 没有映射

    • 使用普通的JDBC [POJO]
  • 预映射

    • xml配置
    • 注释

当您使用XML配置,它可能看起来POJO,但事实并非如此。

+0

这意味着如果我使用Spring Jdbc,我仍然需要使用POJO吗? –

+0

编辑我的回答 – Xenwar

+0

谢谢Xenwar, –