batis 分条件动态更新的问题

btq123 2011-11-30 07:13:15
大家,兄弟今天在ibatis动态更新的问题上,纠结了一天。
现在的业务是,从文件里读入某些记录,然后执行CRUD操作,如果某些属性是空字符串的情况,该字段不更新,如果是全角空格或半角空格的情况,就把当前字段更新为NULL,如果是合法值的话,就更新该字段。
现在的初步思路是在SQLMAP这样做。
<isNotEmpty>
<isEqual>
全角空格的情况
xxx = null
</isEqual>
<isEqual>
半角空格的情况
xxx = null
</isEqual>
</isNotEmpty>

现在的问题是,合法值的情况就不知道怎么写了,并且这条件太多,感觉代码很难看。

大家有什么好的方法或者建议没。不一定从SQLMAP考虑,程序上面也可以着手。
...全文
55 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDW 2011-12-01
  • 打赏
  • 举报
回复
更新内容合法性应该在sql前面处理(service中),读出的内容应该生成一个对象,这样去更新就好多了。
什么都不能 2011-12-01
  • 打赏
  • 举报
回复
设计感觉不大对,怎么还分全角半角空格?这个应该在数据合法性验证的时候就过滤掉了
cjoy4856 2011-11-30
  • 打赏
  • 举报
回复
LZ可以使用两种方法
1,。使用动态拼装的方式 这个主要是通过ibatis的 标签
lz你不能使用现在的这种方式,应该是将符合条件的追加出来。如果你按照你的方式,如果我表中有4字段,你就写了两个不符合条件的,反过来全不是符合的,但是你不通过类或是表的结构你知道是那些吗?对吧,它也是代码,并没有那种所谓的反过程。
2.使用java的代码让代码生成SQL语句 将sql语句当成参数传递过去
这个方法就是将动态的sql语句在java端就生成好,这样的话,到sqlMAP中就是你要的SQL语句了 但是这个使用的方式要使用到$ 具体的$字符的使用可以查看ibatis和网上的一些资料。我就不说了。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧