jjzjj

resultSet

全部标签

java - 如何为 iBatis select 语句设置 fetchSize

我在Java中使用iBatis作为ORM框架。我有一个选择语句SELECT*FROMSOME_TABLE我正在使用queryForList方法:Listlist=getSqlMapClientTemplate().queryForList("getList");但是它检索大量数据并且此查询的性能非常慢。我对这个问题的假设是iBatis具有默认的获取大小(例如,在JDBS中是10),所以这就是它这么慢的原因。所以我想设置更大的获取大小(例如1000)。我该怎么做?还是我看错了方向?注意:我需要所有数据,所以在queryForList方法中设置最大结果对我来说不是合适的解决方案。Listq

java - 在 JDBC ResultSet 中,当对 int 结果列调用 getLong() 或 getShort() 时会发生什么情况?

假设我有一个JDBCResultSet,我调用了getLong()或getshort()方法。对于以下哪种SQL类型{SMALLINT,INT,BIGINT}我应该得到long,对于哪些类型我应该得到错误?换句话说,如果我有一个INT并且我想要一个SMALLINT(Ashort),我会得到它,还是会得到一个错误?同样,如果我有一个INT并想要一个BIGINT(长整数),我会得到它,还是会得到一个错误?Javadocs(下面列出)什么也没说。publiclonggetLong(intcolumnIndex)throwsSQLExceptionRetrievesthevalueofthed

java - ResultSet#getDate() 语义

我们从迁移到ojdbc6-11.2.0.3.0至ojdbc7-12.1.0.1并观察到​​ResultSet#getDate()的变化语义。以前是java.sql.Date根据java.sql.Date上指定的契约(Contract),通过将小时、分钟、秒和毫秒设置为零,返回的值将被“标准化”.与ojdbc7这不再是这种情况,java.sql.Date具有根据数据库中的值设置的小时、分钟、秒和毫秒。我查看了ResultSet#getDate()的Javadoc并且它没有明确说明哪种行为是正确的。我会假设旧的行为是规范的意图。我对吗?我们是否遇到了驱动程序错误?

java - 在 Java 程序中使用结果集

Resultsetrs=stmt.executeQuery("selectcount(*)fromfeedscagroupbyscoreorderbyscore");使用上面的java代码,我从名为feedsCA的表中检索行数。在尝试使用rs.getInt(1)、rs.getInt(2)、rs.getInt(3)检索计数时,我以如下错误结束,Exceptioninthread"main"com.microsoft.sqlserver.jdbc.SQLServerException:Theresultsethasnocurrentrow.atcom.microsoft.sqlserver

java - 复制 Java 结果集

我有一个需要更新的java.sql.ResultSet对象。但是结果集不可更新。不幸的是,这是对我正在使用的特定框架的限制。我在这里试图实现的是从数据库中获取数据,然后处理少量数据,最后将数据写入CSV文件。在这个阶段,我认为我最好的选择是创建一个新的结果集对象并将原始结果集的内容复制到新的结果集,同时操作数据。但是,我在谷歌上四处搜寻,似乎无法确定如何做到这一点,甚至根本无法确定它是否可能。我对Java的一切都是陌生的,所以任何帮助都将不胜感激。 最佳答案 感谢您的回复。最后我找到了CachedRowSet这正是我所需要的。有了这

Java - 连接关闭后无法使用 ResultSet

我在关闭与MySQL的连接时遇到问题。我收到错误:java.sql.SQLException:OperationnotallowedafterResultSetclosed我的代码:publicstaticResultSetsqlquery(Stringquery){ResultSetrs=null;Connectionconnection=null;Statementst=null;try{Class.forName("com.mysql.jdbc.Driver");connection=DriverManager.getConnection("databaseadress","us

java - 如何只获取 java.sql.ResultSet 的第一行?

我有一个ResultSet对象,其中包含从sql查询返回的所有行。我希望能够(在java代码中,而不是在SQL中强制它)能够获取一个ResultSet并对其进行转换,以便它只包含1(第一)行。实现这个目标的方法是什么?此外,是否有另一个适当的类(在java.sql或其他地方的某个地方)只存储一行而不是修剪我的ResultSet?谢谢! 最佳答案 仅用于限制resultset中的行数您可以执行以下操作:StringyourQuery="select*fromsome_table";PreparedStatementstatement=

java - 如何将表从一个数据库复制到另一个数据库?

我需要从一个数据库中取出一张表并将其上传到另一个数据库。所以,我创建了两个单独的连接。这是我的代码Connectionconnection1=//setupconnectiontodbms1Statementstatement=connection1.createStatement();ResultSetresult=statement.executeQuery("select*from.............");Connectionconnection2=//setupconnectiontodbms2//NowIwanttouploadtheResultSetresultint

java.io.IOException : Stream closed 异常

对于多张图片检索,我调用一个带有anchor标记的PhotoHelperServlet来获取imageNames(多张图片),如下所示PhotoHelperServlet获取Images的名称protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//GettinguseridfromsessionImageimage=newImage();image.setUserid(userid);ImageDAOimageDAO=new

java - 调用 ResultSet.getDate() 时出现 NullPointerException

我在以下代码中调用ResultSet.getDate()时收到了java.lang.NullPointerException。但是,数据库中的条目似乎不是null。连接似乎处于Activity状态,因为正在获取其他字段。我做错了什么?try{.../*Codethatcreatesaconnectionandinitializesstatement*/Stringquery="SELECT*FROMgroupsWHEREid='testGroup1'";ResultSetrs=statement.executeQuery(query);if(rs.next()){admin=rs.ge