数据库里面的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把
相关推荐
本文档演示如何从 Java 存储过程将 JDBC ResultSet 作为 REF CURSOR 返回。JDBC ResultSet 是一个表示数据库的数据表,通常通过执行查询数据库的语句产生该表。REF CURSOR 是 PL/SQL 中相应的类型。Java 存储过程的...
Java-JDBC【之】数据类型、封装JDBCUtil、封装通用增删改、ResultSet与ResultSetMetaData、查询结果集映射Map与ListMap 1.数据类型 2.封装通用增删改 2.1.封装JDBCUtil 2.2.封装Dao通用增删改 2.3.测试 3.ResultSet...
封装ResultSet结果集
JDBC通信原理 JDBC驱动类型 JDBC构成 JDBC程序5步走 滚动的结果集 可更新的结果集 SQL数据类型对应的Java类型 事务及批量处理 行集、连接池、LDAP
Java-JDBC【之】实现ORM,结果集映射实体类(ResultSet、注解、反射) 1.ORM实现思路 2.@Table、@Column、标识实体类 2.1.创建注解 @Table、@Column 2.2.标识实体类 2.3.数据库表 3.结果集解析,注解加反射填充实体...
次类对ResultSet进行封装,可以将其转化为List,Map,BO等
资源所属:https://blog.csdn.net/qq_16773953/article/details/103461172
JDBC基础教程之ResultSet对象.doc )
jdbc数据集生成器 根据数据集ResultSet自动生成Html文档(表格),模仿数据库导出数据功能!
资源所属:https://blog.csdn.net/qq_16773953/article/details/103461172
最近在做毕业设计,需要用到数据库,在用结果集ResultSet判断的时候遇到一个郁闷的事情。 一开始我的想法是这么一个框架: ResultSet rs = dao.executeQuery(sql); if(rs不为空){ while(rs.next()){ … } }else{ … ...
JDBC规范 java.sql和javax.sql两个包中的类与接口(天龙八部): DataSource:数据源 ... ResultSet:结果集,封装了多条记录 JDBC数据库连接池/Connection Pool DBCP:apache tomcat内置
此类是针对执行查询语句返回的ResultSet结果集进行设计的,旨在方便用户将数据库的内容转化为Vector、ArrayList容器的操作过程,此类中提供了多种方法从而简化了对ResultSet结果集的转化成本,结合系统提供的...
JavaJDBC的视频,通过ResultSet执行查询操作,视频详细描述了如何使用ResultSet执行查询的案例。
* ResultSet 结果集:封装了使用JDBC 进行查询的结果 * 1. 调用Statement 对象的 executeQuery(sql) 方法可以得到结果集 * 2. ResultSet 返回的实际上就是一张数据表,有一个指针指向数据表的第一行的前面, * ...
获得结果集的字段名称_ResultSet的属性要调用ResultSetMetaData的方法
java组件开发(15) JDBC操作工具类与ResultSet数据
ResultSet的用法
<3>.JDBC网络纯java驱动程序:将JDBC转换为与DBMS无关的网络协议,又被某服务器转换为一种DBMS 协议,以操作各种数据库 <4>.本地协议纯java驱动程序:将JDBC调用直接转换成JDBC所使用的网络协议 2、JDBC操作基本...
假设我们的ResultSet代表这样的列。 这些列是从表的某些联接... //您的结果集来自jdbc查询** **列出付款= ResultSetMapper.mapRersultSetToList(rs,Payment.class); //如果不是列表,请使用mapRersultSetToObject **