标签: resultset

如何获得java.sql.ResultSet的大小?

这不应该是一个非常简单的操作吗?但是,我看到既没有size()也没有length()方法.

java sql jdbc resultset record-count

276
推荐指数
6
解决办法
43万
查看次数

从Java ResultSet检查null int值

在Java中,我试图从ResultSet中测试一个空值,其中列被转换为原始int类型.

int iVal;
ResultSet rs = magicallyAppearingStmt.executeQuery(query);
if (rs.next()) {
  if (rs.getObject("ID_PARENT") != null && !rs.wasNull()) {
    iVal = rs.getInt("ID_PARENT");
  }
}
Run Code Online (Sandbox Code Playgroud)

从上面的代码片段,有更好的方法来做到这一点,我假设第二个isNull()测试是多余的?

教育我们,谢谢

java null resultset

266
推荐指数
6
解决办法
23万
查看次数

最有效的ResultSet转换为JSON?

以下代码ResultSet使用JSONArray和将a转换为JSON字符串JSONObject.

import org.json.JSONArray;
import org.json.JSONObject;
import org.json.JSONException;

import java.sql.SQLException;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;

public class ResultSetConverter {
  public static JSONArray convert( ResultSet rs )
    throws SQLException, JSONException
  {
    JSONArray json = new JSONArray();
    ResultSetMetaData rsmd = rs.getMetaData();

    while(rs.next()) {
      int numColumns = rsmd.getColumnCount();
      JSONObject obj = new JSONObject();

      for (int i=1; i<numColumns+1; i++) {
        String column_name = rsmd.getColumnName(i);

        if(rsmd.getColumnType(i)==java.sql.Types.ARRAY){
         obj.put(column_name, rs.getArray(column_name));
        }
        else if(rsmd.getColumnType(i)==java.sql.Types.BIGINT){
         obj.put(column_name, rs.getInt(column_name));
        }
        else if(rsmd.getColumnType(i)==java.sql.Types.BOOLEAN){
         obj.put(column_name, rs.getBoolean(column_name));
        }
        else if(rsmd.getColumnType(i)==java.sql.Types.BLOB){ …
Run Code Online (Sandbox Code Playgroud)

java sql json resultset

106
推荐指数
6
解决办法
14万
查看次数

如何从JDBC ResultSet中获取列数?

我正在使用CsvJdbc(它是csv文件的JDBC驱动程序)来访问csv文件.我不知道csv文件包含多少列.如何获得列数?这有什么JDBC功能吗?我在java.sql.ResultSet中找不到任何方法.

为了访问该文件,我使用类似于CsvJdbc网站上的示例的代码.

java csv jdbc resultset

85
推荐指数
3
解决办法
12万
查看次数

如何在Java中使用ResultSet获取行计数?

我正在尝试创建一个简单的方法,接收ResultSet作为参数,并返回一个包含ResultSet的行计数的int.这是否是这样做的有效方式?

int size = 0;
    try {
        while(rs.next()){
            size++;
        }
    }
    catch(Exception ex) {
        System.out.println("------------------Tablerize.getRowCount-----------------");
        System.out.println("Cannot get resultSet row count: " + ex);
        System.out.println("--------------------------------------------------------");
    }
Run Code Online (Sandbox Code Playgroud)

我试过这个:

int size = 0;
try {
    resultSet.last();
    size = resultSet.getRow();
    resultSet.beforeFirst();
}
catch(Exception ex) {
    return 0;
}
return size;
Run Code Online (Sandbox Code Playgroud)

但是我说错了 com.microsoft.sqlserver.jdbc.SQLServerException: The requested operation is not supported on forward only result sets.

提前感谢指针!

java jdbc resultset

68
推荐指数
5
解决办法
35万
查看次数

在文本文件Java中编写大量数据的最快方法

我必须在text [csv]文件中写入大量数据.我使用BufferedWriter来写入数据,大约需要40秒来写入174 MB的数据.这是java提供的最快速度吗?

bufferedWriter = new BufferedWriter ( new FileWriter ( "fileName.csv" ) );
Run Code Online (Sandbox Code Playgroud)

注意:这40秒包括迭代和从结果集中提取记录的时间.:).174 MB是结果集中的400000行.

java file resultset

64
推荐指数
4
解决办法
16万
查看次数

如何确定ResultSet中是否存在列名?

由于ResultSet包含从动态SQL返回的数据,是否有任何方法可以确定ResultSet是否包含特定的列名?例如,如果我运行rs.getString("Column_ABC");但Column_ABC确实不存在,它将抛出异常.如何测试ResultSet是否可以从名为"Column_ABC"的列中获取数据?

java jdbc resultset

63
推荐指数
3
解决办法
5万
查看次数

获取Java中ResultSet返回的行数

我用过一个ResultSet返回一定数量的行.我的代码是这样的:

ResultSet res = getData();
if(!res.next())
{
    System.out.println("No Data Found");
}
while(res.next())
{
    // code to display the data in the table.
}
Run Code Online (Sandbox Code Playgroud)

有没有方法可以检查返回的行数ResultSet?或者我必须自己写?

java resultset

58
推荐指数
5
解决办法
23万
查看次数

在Java中处理ResultSet的有效方法

我在Java中使用ResultSet,并且不确定如何正确关闭它.我正在考虑使用ResultSet来构造HashMap,然后关闭ResultSet.这种HashMap技术是否有效,或者是否有更有效的方法来处理这种情况?我需要键和值,所以使用HashMap似乎是一个合乎逻辑的选择.

如果使用HashMap是最有效的方法,我如何在我的代码中构造和使用HashMap?

这是我尝试过的:

public HashMap resultSetToHashMap(ResultSet rs) throws SQLException {

  ResultSetMetaData md = rs.getMetaData();
  int columns = md.getColumnCount();
  HashMap row = new HashMap();
  while (rs.next()) {
     for (int i = 1; i <= columns; i++) {
       row.put(md.getColumnName(i), rs.getObject(i));
     }
  }
  return row;
}
Run Code Online (Sandbox Code Playgroud)

java resultset hashmap sqlresultsetmapping

53
推荐指数
4
解决办法
11万
查看次数

ResultSet:按索引检索列值与按标签检索

使用JDBC时,我经常遇到类似的结构

ResultSet rs = ps.executeQuery();
while (rs.next()) {
    int id = rs.getInt(1);
    // Some other actions
}
Run Code Online (Sandbox Code Playgroud)

我问自己(以及代码的作者)为什么不使用标签来检索列值:

int id = rs.getInt("CUSTOMER_ID");
Run Code Online (Sandbox Code Playgroud)

我听过的最好的解释是关于表现的.但实际上,它是否会使处理速度极快?我不相信,尽管我从未进行过测量.即使按标签检索会慢一点,但在我看来,它提供了更好的可读性和灵活性.
那么有人可以给我很好的解释,避免通过列索引而不是列标签来检索列值吗?这两种方法的优点和缺点是什么(可能是关于某些DBMS)?

java optimization maintenance jdbc resultset

50
推荐指数
4
解决办法
9万
查看次数