Mybatis在进行<if test="status != null and status != ''">判空操作时,如果status为0的时候,该判断条件的值为false,也就是说Mybatis此时把0作为 ""来进行判断的! status 若为对象数据类型(例integer)就去掉为""判断 若为其他可以自定义在server参数处理成自定义的值.…
问题-MyBatis不识别Integer值为0的数据 问题:使用MyBatis的过程中,发现一个值为0的数据,Mybatis所识别,最后定位才发现,是自己的写法有问题, <if test="form.passLine != null and  form.passLine != '' "> and is_live =  #{form.passLine,jdbcType=INTEGER} </if> 更正成: <span style="color:#…
需求是查询级别为0的用户 User对象里的level字段的值为0,查询时居然没有查到为level为0的用户. <select id="selectSelective" parameterType="com.agri.entity.User" resultMap="map"> select * from sys_user where del_flag = 1 <if test="level != null and lev…
MyBatis条件查询对字段判断是否为空一般为: <if test="testValue!=null and testValue != ''"> and test_value = #{testValue} </if> 如果传入参数为Integer类型且值为0时,会把0转为空串 源码真实情况是: MyBatis解析的所有sqlNode节点,针对if节点会交给IfSqlNode来处理,进过层层处理,最终都会调用OgnlOps.class类的doubleValue(O…
SELECT INTO和INSERT INTO SELECT的区别   数据库中的数据复制备份 SELECT INTO: 形式: SELECT value1,value2,value3 INTO Table_2 FROM Table_1 Table_2表存在,报错:数据库中已存在名为 'Table_2' 的对象. Table_2表不存在,自动创建表Table_2,成功导入数据 INSERT INTO SELECT: 形式: INSERT INTO Table_2 (v1,v2,v3) SELEC…
深入了解MyBatis返回值 想了解返回值,我们须要了解resultType,resultMap以及接口方法中定义的返回值. 我们先看resultType和resultMap resultType和resultMap 大家应该都知道在MyBatis的<select>标签中有两种设置返回值的方式,各自是resultMap和resultType. 处理resultMap和resultType的代码例如以下: private void setStatementResultMap( String re…
部分转载,已注明来源: 1.mybatis中获取常量类中数据 <update id="refuseDebt"> UPDATE dt_debt a SET        a.debt_status = ${@com.debtm.common.STATUS$DEBT_STATUS@DEBT_RETURNED},        a.return_reason = #{reason},a.return_date=CURDATE()        WHERE a.debtID =#{…
参考文档: http://www.ibm.com/developerworks/cn/opensource/os-cn-spring-cache/ 需求场景: 当前业务通过第三方接口查询一个业务数据,该数据更新频率略低(约2小时),但前端查询的频率不可控.所以,需要实现一个带有数据缓存功能的查询接口. 设计方案:  实时数据由第三方接口获取,ehcache作为一级缓存(数据有效时间60秒),mysql作为二级缓存和数据持久层(数据有效时间2小时).查询优先级:ehcache>mysql>第三方…
练习:将值是null的数据删除掉(剔除):com.fasterxml.jackson.annotation.JsonInclude;包 例如,有数据是null,不想展示 { "statusCode": 0, "message": "返回成功", "data": [{ "orderId": "1542785381425923730", "buyerName": &quo…
假设数据库中一个user表 此时只有id为1的数据,当我们查询id为2的年龄时的时候返回值为null 但是在mybatis中预定义UserMapper.xml中 <select id="findUserAgeById" parameterType="int" resultType="int"> SELECT user.age  FROM user WHERE id = #{id} </select> 此时会报错:attem…