标签: resultset

如何选择空结果集?

我在MySQL中使用了一个存储过程,带有CASE语句.

在CASE的ELSE子句中(相当于默认值:)我想选择并返回一个空结果集,从而避免因不处理ELSE情况而抛出SQL错误,而是返回一个空结果集,就好像一个常规查询一样本来没有返回任何行.

到目前为止,我已经设法使用类似的东西:
Select NULL From users Where False

但是我必须命名一个现有的表,比如本例中的"users".它可以工作,但我更喜欢一种更优雅的方式,如果最终重命名或删除所使用的表名,它不会中断.

我试过Select NULL Where False但它不起作用.

使用Select NULL不返回空集,但是一行具有名为NULL且具有NULL值的列.

mysql sql null stored-procedures resultset

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

JDBC ResultSet获取具有表别名的列

想象一下,我有一个类似的查询

SELECT * from table1 a, table2 b where (WHATEVER)
Run Code Online (Sandbox Code Playgroud)

也许两个表都具有相同的列名.所以我虽然通过它访问数据会很好

resultSet.getString("a.columnName");
resultSet.getString("b.columnName");
Run Code Online (Sandbox Code Playgroud)

但这对我不利,我一无所获.我读了API,但他们并没有真正谈论这个案例.这样的功能供应商是否依赖?

java sql oracle jdbc resultset

46
推荐指数
4
解决办法
5万
查看次数

JDBC ResultSet:我需要一个getDateTime,但只有getDate和getTimeStamp

我想从带有JDBC的Oracle DB表中获取DATETIME列.这是我的代码:

int columnType = rsmd.getColumnType(i);
if(columnType == Types.DATE)
{
    Date aDate = rs.getDate(i);
    valueToInsert = aDate.toString();
}
else if(columnType == Types.TIMESTAMP)
{
    Timestamp aTimeStamp = rs.getTimestamp(i);
    valueToInsert = aTimeStamp.toString();
}
else
{
    valueToInsert = rs.getString(i);
}
Run Code Online (Sandbox Code Playgroud)

我必须首先确定列类型.我感兴趣的字段被识别为Types.DATE,但它实际上是数据库中的DATETIME,因为它具有以下格式:"07.05.2009 13:49:32"

getDate截断时间:"07.05.2009"并且getString将".0"附加到它:"07.05.2009 13:49:32.0"

当然我可以删除最终的.0并一直使用getString,但这是一个肮脏的解决方法.

有任何想法吗 ?我一直在寻找一个getDateTime方法.

干杯,蒂姆

java sql oracle resultset getdate

44
推荐指数
2
解决办法
10万
查看次数

像Scala流一样处理SQL ResultSet

当我查询数据库并接收(仅向前,只读)ResultSet时,ResultSet就像一个数据库行列表.

我试图找到一些方法来像Scala一样对待这个ResultSet Stream.这将允许这样的操作的filter,map等等,而不是消耗大量的内存.

我实现了一个尾递归方法来提取单个项目,但是这要求所有项目同时在内存中,如果ResultSet非常大,则会出现问题:

// Iterate through the result set and gather all of the String values into a list
// then return that list
@tailrec
def loop(resultSet: ResultSet,
         accumulator: List[String] = List()): List[String] = {
  if (!resultSet.next) accumulator.reverse
  else {
    val value = resultSet.getString(1)
    loop(resultSet, value +: accumulator)
  }
}
Run Code Online (Sandbox Code Playgroud)

scala resultset stream

43
推荐指数
3
解决办法
2万
查看次数

Python,如何检查结果集是否为空?

我有一个不返回命中的sql语句.例如,'select * from TAB where 1 = 2'.

我想查看返回的行数,

cursor.execute(query_sql)

rs = cursor.fetchall()
Run Code Online (Sandbox Code Playgroud)

在这里我得到了异常:"(0,'没有结果集')"

如何预先设置此异常,检查结果集是否为空?

python resultset python-db-api

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

JPA可以将结果作为地图返回吗?

我们目前基于命名查询返回的两个字段手动构建映射,因为JPA仅提供getResultList().

@NamedQuery{name="myQuery",query="select c.name, c.number from Client c"}

HashMap<Long,String> myMap = new HashMap<Long,String>();

for(Client c: em.createNamedQuery("myQuery").getResultList() ){
     myMap.put(c.getNumber, c.getName);
}
Run Code Online (Sandbox Code Playgroud)

但是我觉得自定义映射器或者类似物会更高效,因为这个列表很容易就会产生30,000多个结果.

任何想法,无需手动迭代即可构建Map.

(我使用的是OpenJPA,而不是休眠)

jpa resultset map openjpa

32
推荐指数
5
解决办法
7万
查看次数

由ResultSet支持的Java Iterator

我有一个实现Iterator的类,ResultSet作为数据成员.基本上这个类看起来像这样:

public class A implements Iterator{
    private ResultSet entities;
    ...
    public Object next(){
        entities.next();
        return new Entity(entities.getString...etc....)
    }

    public boolean hasNext(){
        //what to do?
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

如何检查ResultSet是否有另一行,以便我可以创建一个有效的hasNext方法,因为ResultSet没有自己定义hasNext?我正在考虑进行SELECT COUNT(*) FROM...查询以获取计数并管理该数字以查看是否有另一行但我想避免这种情况.

java sql iterator jdbc resultset

31
推荐指数
5
解决办法
9万
查看次数

如何在Java中查找ResultSet是否为空?

我怎么能发现ResultSet通过查询数据库得到的是空的?

java jdbc resultset

31
推荐指数
5
解决办法
11万
查看次数

何时在JDBC中关闭Connection,Statement,PreparedStatement和ResultSet

关于JDBC编码的几个问题:

  1. 对于单个客户端应用程序,我们是否需要连接池?
  2. 在开始时创建一个Connection并保持活着而不关闭它直到应用程序退出是一个好主意吗?为什么?
  3. PreparedStatement与Connection关联,如果我的连接在每次查询后没有关闭,为什么不保持PreparedStatement活着并在其他方法中重用它?
  4. 如果我们为每个查询创建PreparedStatement,数据库是否知道它是相同的PreparedStaement并在第一次之后忽略不必要的操作?
  5. PreparedStatement不会创建一次并重复使用多次语句?如果是的话,为什么每次都需要关闭它?

我知道对close()的调用会释放资源.但是如果我们知道我们稍后会使用它,为什么要释放它然后再请求它呢?

多客户端应用程序怎么样?我们需要连接池,所以我们每次都需要创建和关闭Connection,Statement和PreparedStatement?

谢谢,

java connection jdbc resultset

30
推荐指数
1
解决办法
1万
查看次数

如何使用jQuery判断所选结果是否为空?

$("#experiences tr")
Run Code Online (Sandbox Code Playgroud)

对于上面的一个,如何判断它是否为空?

我认为它的布尔值应该是假的,但似乎不是.

jquery resultset jquery-selectors

30
推荐指数
1
解决办法
1万
查看次数