平时的项目中由于不知名情况,数据库中的字段不知道有意还是无意,反正都会有null、或者空字符串的情况。
1.mybatis取数时空会得到什么?
mapper:
<select id="findAll" resultType="User">
select user_id id,user_name userName,user_age age from t_user
</select>
当返回类型为对象的时候,数据库NULL
的情况下页面正常的EL表达式取值为空。
2.返回类型List<Map<String, String>>
<resultMap type="java.util.HashMap" id="userResultMap">
<id property="user_id" column="user_id"/>
<result property="user_age" column="user_age"/>
<result property="user_name" column="user_name"/>
</resultMap>
<select id="get" parameterType="java.util.HashMap" resultMap="userResultMap">
select user_id id,user_name userName,user_age age from t_user
where 1=1
<if test="user_age != null and user_age != ''">
and user_age=#{user_age}
</if>
</select>
返回的数据有一条是NULL的,页面该空格变为空。
当获取数据库值是,返回类型为实体对象或者map,当数据库为NULL时,map应该就映射为了空字符串,jsp通过EL表达式获得的值也是空字符串。
EL表达式中:
使用empty
判断为空或者字符串。
==null
判断是否为空
3.json
使用发现,json往往对某个对象或者map进行转化,一旦map中的某个键值对为NULL
或者没设置对象的属性值的时候,转化出来的json字符串就会有null字符串显示。