java解析读取xml文件时怎么去掉不必要的换行和空格_Mybatis中foreach标签带来的空格\换行\回车问题及解决方案...

原因

在自已做的内容中通过获取多个商品Id,以此来获取多个商品详细信息。但数据库返回的商品信息的顺序与原来List中产品的id顺序并不匹配,这就导致了前端页面商品的信息显示混乱,不匹配。

通过网上找到order by排序可以有效解决这个问题,返回与查询时的产品id顺序一致。还有一点,List时有序的

这里先附带上这个sql语句(只能在数据库中成功)

select prod_id, prod_name, price, `describe`, prod_date, prod_pic, integral, Prod_detail from product_info

where prod_id in('sayx0420','smxj0420','flpd0420','snxj0420' )

order by

instr(',sayx0420,smxj0420,flpd0420,snxj0420',CONCAT(',',prod_id,','))

想了解instr()的小伙伴可以自已去查找相关内容

进入主题

如何在Mybatis的XML中写出这样的效果!

select

${prodId}

上面的查询语句返回的输出信息

3aaa919aff551c72b015f0b6058fb15f.png

因为空格,回车与换行的原因这样达不到下面代码的效果instr(',sayx0420,smxj0420,flpd0420,snxj0420',CONCAT(',',prod_id,','))

解决

思路:替换图片内的回车,换行与空格为单引号

ASCII码

char(10) 换行

char(13) 回车

解决:用sql的replace方法去替换

select replace(replace(replace(

${prodId}

,char(13),''),char(10),''),' ' ,'')

再次调用此方法,显示以下结果

a66c69bf1742a1fce83229557f1e6277.png

附带上源代码

select prod_id, prod_name, price, `describe`, prod_date, prod_pic, integral, Prod_detail

from product_info

where prod_id

#{prodId}

order by

instr(replace(replace(replace(

${prodId}

,char(13),''),char(10),''),' ' ,''),CONCAT(',',`prod_id`,','))

04254bf4f8212992427ef182b2376acd.png

不加Order By排序的结果

107b85bd447a06df95502fdde0fb0457.png

结语

用了三个连续的replace方法,可读性差,不美观

虽然解决Fooeach的标签的问题,但还是没能较好的解决开始的问题

如果有想法的小伙伴可以在下面留言告诉我。

到此这篇关于Mybatis中foreach标签带来的空格\换行\回车问题及解决方案的文章就介绍到这了,更多相关Mybatis foreach标签内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值