`
men4661273
  • 浏览: 278207 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jdbc的ResultSet结果集,数字类型的null取出后为0

阅读更多
数据库里面的int,decimal等类型的字段值为null, 通过jdbc的ResultSet的getInt("x")或者getDouble("x")取出来之后是null吗,并不是,之前并没有太在意,一直以为取出来应该是null,后来偶然发现居然不是null,是0。。 然后就好奇,查了下为什么会是0。
先翻了下api,看了下ResultSet接口的getInt("x")返回值,一下就明白了,是int 而不是Integer,
public abstract int getInt(String paramString)
 接口定义的时候就已经决定了它的返回值,
那么我们可以获取null的值吗,用于区分null和0?答案是可以的!
方法一:
public abstract Object getObject(String paramString)
通过这个接口,我们可以获取,如果字段为null,会返回null值,这样我们就可以来区分到底是0还是null了,就像这样
Object object = rs.getObject("xx");
if (object == null) {
	o.setXx(null);
}else{
	……
}
 方法二:
o.setA(rs.getInt("xx"));
if (rs.wasNull()) {
     o.setA(null);
}
 wasNull()方法可以判断最后一次get到的数据是否是null的,但是一定要紧跟在需要判断的那个列的get后面!!
不过话说ResultSet接口为什么定义为只返回基本数据类型呢,或许是因为数据库里面的null难优化,提醒我们数据库的字段最好不要为null把
0
0
分享到:
评论

相关推荐

    jdbc的不错总结,有需要的可以下了看看

    在执行SQL语句后,通常会返回一个结果集,结果集可以看作是查询结果的集合。为了处理这个结果集,可以使用`ResultSet`对象。 ```java public static void resultPrint(ResultSet rs) { if (rs == null) return; ...

    java读取sqlserver image字段.docx

    SQL Server 提供了`IMAGE`类型来存储大容量的二进制数据。然而,如何有效地从数据库中读取这些二进制数据,并将其转换为可用的格式,如图像文件,则是一个常见的技术问题。本文将详细介绍如何使用Java语言读取SQL ...

    mybatis中操作json类型数据(csdn)————程序.pdf

    如果类型参数为null,会抛出`PersistenceException`。 `parse`方法用于将JSON字符串转换为Java对象,如果输入的JSON字符串为空,返回null。`toJsonString`方法则是将Java对象转换为JSON字符串,如果在转换过程中...

    java 访问Access数据库方法

    执行一条 select 查询语句后得到的表格存入 ResultSet 对象中 String sql = "select * from news"; rs = stmt.executeQuery(sql); // 5. 遍历表格中信息打印出来 while (rs.next()) { // 可以根据字段名取出...

    java取出mysql中数据,显示在jtable里面

    在数据库操作完成后,应该释放相关的资源,如关闭`ResultSet`、`Statement`和`Connection`对象。这通常可以通过finally块来实现。 示例代码如下: ```java finally { try { if (rs != null) rs.close(); if (ps ...

    火车售票 第2

    //遍历取出结果集中的内容 str[count]=rs.getString(1)+" "+rs.getString(2)+" "+rs.getString(3)+" "+rs.getString(4)+" "+rs.getString(5)+" "+rs.getString(6)+" "+rs.getString(7)+ " "+rs.getString(8)+" ...

    自己实现orm框架

    - **结果集映射**:自动将查询结果映射回Java对象。 #### 四、架构设计 ##### 1. 核心组件 - **Query接口**:负责查询操作的核心接口,提供了统一的查询入口。 - **QueryFactory类**:根据配置信息创建Query对象...

    Blob数据下载到本地

    1. **连接数据库**:使用JDBC(Java Database Connectivity)或者其他数据库连接工具,建立与Oracle数据库的连接。确保你有适当的用户名、密码以及数据库的URL。 2. **查询Blob数据**:编写SQL查询语句,从包含Blob...

    java分页设计

    当查询结果集过大时,如果一次性加载到前端显示,不仅会消耗大量的服务器资源,还会导致页面加载速度变慢,降低用户体验。因此,通过分页可以有效地解决这些问题。 ##### 2.2 常见的分页技术分类 根据实现机制的...

    java中读取ORACLE中BLOB字段存储的图片

    例如,在Oracle数据库中创建一张名为`t_wlsgry`的表,并包含一个`BLOB`类型的字段`zp`用于存储图片数据。 3. **图片数据准备**: - 准备一些图片文件,并将其插入到数据库表中。这可以通过SQL语句或者使用Java程序...

    Java实现获得MySQL数据库中所有表的记录总数可行方法

    在Java代码中,我们通常会使用`java.sql.Connection`、`java.sql.Statement`或`java.sql.PreparedStatement`接口来执行SQL语句,以及`java.sql.ResultSet`来处理查询结果。以下是一个简单的示例,展示了如何初始化...

    图片转流存库和读取二进制流页面展示

    本文档将详细介绍如何在Java环境下实现图片转换为二进制流存储到数据库中的过程,以及如何从数据库中读取出这些二进制流并将其展示在网页上。主要涉及以下几个方面的内容: 1. **图片转换为二进制流**: 包括通过URL...

    javaweb分页技术详解及代码.pdf

    `LIMIT`后的两个参数分别代表起始位置(从0开始)和返回的记录数。 三、Java Web分页模型 在Java Web中,我们通常会创建一个`PageBean`类来封装分页信息,包括数据对象集合、总记录数、当前页数、每页记录数等...

    JAVA工程师面试题(机构招聘)

    - `so(name0, name1)` 方法交换两个 `String` 变量的值,由于 `String` 是不可变的,实际上创建了新对象,输出结果仍为 "mike,Lily"。 6. 数据库操作的程序片段改进: - 使用预编译语句(PreparedStatement)代替...

    Mysql存储java对象实例详解

    2. **插入数据库**:使用JDBC(Java Database Connectivity)API,将上述序列化后的字节数组作为BLOB类型字段的值插入MySQL数据库。例如: ```java PreparedStatement pstmt = connection.prepareStatement(...

Global site tag (gtag.js) - Google Analytics