在ibatis中在sql语句判断的时候isEqual和isNull的区别是什么地方 yun...这个和对象,地址应该一样吧。。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一个是 判断是否相等 一个是 判断是否是NULL isNull是判断一个参数对象的某个属性是否为null例如,id不为空的话拼串a.id=#id:INTEGER# <isNotNull prepend="AND" property="id"> a.id=#id:INTEGER# </isNotNull>isEqual是判断一个参数对象的某个属性是否等于目标值,例如只有等于6时才拼串a.id=#id:INTEGER#[/code] <isEqual compareProperty="id" compareValue="6"> a.id=#id:INTEGER# </isEqual>[/code] isNull判断property字段是否是null,用isEmpty更方便,包含了null和空字符串isEqual相当于equals,数字用得多些,一般都是判断状态值<isEqual property="state" compareValue="0"></isEqual>或<isEqual property="state" compareProperty="nextState"></isEqual> 给你一个非常简单的例子:两个变量private int id;private String name;你如果用<isNotNull prepend="AND" property="id"> a.id=#id#</isNotNull>即使你在bean中不设置id的值,id的初始值也是0而不是null;所以这样配置a.id会等于0而你把name变量用isNotNull这样配置,name如果不设置值,初始就是null,name的条件不就添加在sql中,不知道你有没有明白?所以对初始值不为null的变量就应该用isEqual其他类似的应用可以自己思考延伸 传入的map或者类的属性name等于"1"吗,是就附加and和vvvv = '哈哈'<isEqual property="name" compareValue="1" prepend="and"> vvvv = '哈哈'</isEqual>传入的map或者类的属性name是null吗,是就附加and和vvvv = null<isNull property="name" prepend="and"> vvvv = null</isNull> 对初始值不为null的变量就应该用isEqual 我的字段类型是number类型,在插入数据前先判断是否为空,但是如果是0,就被默认为空,这是为什么 3年的帖子现在还没有结ing 一个奇怪的现象,又懂得,帮忙的看一下 Tomcat服务器怪问题 java爱好者 xml解析 都来看看jsp中传递中文参数 JDBC driver is not on the CLASSPATH 大家能否分析一下JDBC连接数据库慢的原因? structs菜鸟问问下面的错误是什么意思!! 高分求教:使用有态SESSION BEAN和在SESSION里面放一个JAVA BEAN有什么区别? jdbctemplate的批量插入 Javamail ExchangeServer Weblogic 的困惑 一个 xfire 客户端的问题~~~Proxy到底是个啥?????????
一个是 判断是否是NULL
a.id=#id:INTEGER#
</isNotNull>isEqual是判断一个参数对象的某个属性是否等于目标值,例如只有等于6时才拼串a.id=#id:INTEGER#
[/code]
<isEqual compareProperty="id" compareValue="6">
a.id=#id:INTEGER#
</isEqual>
[/code]
<isEqual property="state" compareValue="0">
</isEqual>
或
<isEqual property="state" compareProperty="nextState">
</isEqual>
两个变量
private int id;
private String name;
你如果用
<isNotNull prepend="AND" property="id">
a.id=#id#
</isNotNull>
即使你在bean中不设置id的值,id的初始值也是0而不是null;所以这样配置a.id会等于0
而你把name变量用isNotNull这样配置,name如果不设置值,初始就是null,name的条件不就添加在sql中,
不知道你有没有明白?
所以对初始值不为null的变量就应该用isEqual
其他类似的应用可以自己思考延伸
<isEqual property="name" compareValue="1" prepend="and">
vvvv = '哈哈'
</isEqual>传入的map或者类的属性name是null吗,是就附加and和vvvv = null
<isNull property="name" prepend="and">
vvvv = null
</isNull>