重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
小编给大家分享一下mybatis中数字字符串比对的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
创新互联专业为企业提供八公山网站建设、八公山做网站、八公山网站设计、八公山网站制作等企业网站建设、网页设计与制作、八公山企业网站模板建站服务,十年八公山做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
在mybatis开发过程中有需要在sql中判断查询哪张表,如下sql:
SELECT a.tag_name, a.tag_id, count( 0 ) AS base_total FROM mm_dd_body aLEFT JOIN ccc AS b ON b.tag_body_id = a.id |<|>=|<=|=|[[:blank:]])+' ) AND b.tag_id IN ( SELECT tag_id FROM gggg WHERE product = a.product ) ]]> WHERE a.tag_base_cat = #{tagType} AND a.del = 0
在运行时发现不管tagType传什么值都不会进入两个if中, 经过分析,'1'是会被转成数字,所以这里有两种方案: 方案1:将参数转为int类型,再进行比较
LEFT JOIN ccc AS b ON b.tag_body_id = a.id
方案二:将数字转成字符串,加上.toString(),如下:
LEFT JOIN ccc AS b ON b.tag_body_id = a.id
当然上面的设计本就不是一个好的设计,违背了单一职责原则,可以将if判断剥离成两个单独select,然后在业务层去判断是使用哪个,这也是一种好的方案,可以规避不少坑
看完了这篇文章,相信你对“mybatis中数字字符串比对的示例分析”有了一定的了解,如果想了解更多相关知识,欢迎关注创新互联行业资讯频道,感谢各位的阅读!