我想编写一个java函数,它接受一个SQL查询并返回一个ResultSet以供在别处处理。这无法完成,因为一旦连接关闭,ResultSet就会失效。谷歌搜索我发现了一个VERYOLD(2004)OReillyarticle它有一些看起来像治愈方法的东西:CachedRowSet。您只需放入ResultSet,CachedRowSet会保存数据,让您关闭连接并使用返回的CachedRowSet在别处处理数据。这篇文章引用了Sun的CachedRowSet实现,但似乎无处可寻。现代javadocs(适用于Java1.5及更高版本)似乎有一些同名的东西,“CachedRowSet”,它不仅仅
我正在尝试学习Java中的CachedRowSet,并且正在阅读一些有关它的教程。我经常遇到引用实现术语。例如Alternatively,youcanusetheconstructorfromtheCachedRowSetimplementationofyourJDBCdriver.However,implementationsoftheRowSetinterfacewilldifferfromthereferenceimplementation.Theseimplementationswillhavedifferentnamesandconstructors.Forexample,t
我正在从可能发生变化的View中查询数据。在执行crs.get******()之前,我需要知道该列是否存在。我发现我可以像这样查询元数据,在我从中请求数据之前查看列是否存在:ResultSetMetaDatameta=crs.getMetaData();intnumCol=meta.getColumnCount();for(inti=1;i是否有更简单的方法来检查列是否存在?编辑它必须与数据库无关。这就是我引用CachedRowSet而不是数据库的原因。 最佳答案 通用JDBCAPI没有更简单的方法(至少我不知道或找不到...我在自
我正在尝试在执行查询后关闭连接。之前,我只是创建了一个CachedRowSetImpl实例,它会负责为我释放资源。但是,我正在使用Hadoop项目的Hive数据库驱动程序。它不支持CachedRowSetImpl.execute()。我想知道是否有任何其他方法可以让我复制ResultSet对象并关闭连接? 最佳答案 您可以从现有的ResultSet填充CachedRowSet:publicstaticRowSetexecuteQuery(Stringsql)throwsException{Connectioncon=null;Pre
我正在使用MySQL数据库,我有一个包含2列的Employee表:Id(Int;主键)和Name(String).我已经编写了一些代码来向Employee表中插入一行,但是acceptChanges不起作用并且代码在acceptChanges处停止。代码如下:importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;importjavax.sql.rowset.CachedRowSet;importjavax.sql.rowset.RowSetFactory;importjava
我正在尝试使用CachedRowSet编写一个方法来执行SQl查询。示例代码如下(之前定义了用户和密码),publicCachedRowSetgetContentsOfCoffeesTable(Connectionconnection)throwsSQLException{CachedRowSetcrs=null;try{crs=newCachedRowSetImpl();crs.setType(ResultSet.TYPE_SCROLL_INSENSITIVE);crs.setConcurrency(ResultSet.CONCUR_UPDATABLE);crs.setUsernam
直到今天,我在处理查询结果时一直使用ResultSet。但是今天我读了一些关于RowSet的内容和CachedRowset我意识到它们可以更好地服务于我的目的。虽然在我阅读的所有示例中,RowSet和CachedRowSet都被称为对象,但当我自己在代码中尝试时,我意识到它们是接口(interface),在它们使用的示例中这些接口(interface)的一些实现。现在我的问题是我在哪里可以找到这些实现,是否有官方的东西?我需要下载它们还是它们随JDK一起提供? 最佳答案 实现是特定于JRE的。Oracle(Sun)JRE带有一堆实现
我正在使用javax.sql.rowset.CachedRowSet进行调查在我的部分应用程序中,但是我只能找到有关使用专有sun实现的信息com.sun.rowset.CachedRowSetImpl或Oracle特定的实现。sun实现是unsupportedandsubjecttochange.如果我以后想部署到非Sun虚拟机,使用它也可能会导致问题,最后它会在我们的构建日志中留下无法抑制的警告,从而掩盖其他警告。是否有一个开源替代实现,我们可以部署在我的应用程序中,并且可以在多个数据库中正常工作?至少支持MySQL。 最佳答案
我正在使用javax.sql.rowset.CachedRowSet进行调查在我的部分应用程序中,但是我只能找到有关使用专有sun实现的信息com.sun.rowset.CachedRowSetImpl或Oracle特定的实现。sun实现是unsupportedandsubjecttochange.如果我以后想部署到非Sun虚拟机,使用它也可能会导致问题,最后它会在我们的构建日志中留下无法抑制的警告,从而掩盖其他警告。是否有一个开源替代实现,我们可以部署在我的应用程序中,并且可以在多个数据库中正常工作?至少支持MySQL。 最佳答案