mybatis 标签trim+foreach使用

网友投稿 1140 2022-11-23

mybatis 标签trim+foreach使用

mybatis 标签trim+foreach使用

trim的使用

认识trim内置的属性标签

运算符

含义

prefix

在trim标签内sql语句加上前缀。

suffix

在trim标签内sql语句加上后缀。

suffixOverrides

后缀判断的条件, 去掉最后一个逗号

prefixOverrides

prefixoverride:去掉第一个and或者是or, 去除trim标签内sql语句多余的后缀

示例

//prefix前缀加上where 然后prefixOverrides 去掉里面sql片段第一个and或者or

foreach

foreach: 1.collection:接收请求的参数,必填,值为要选代循环的属性名。这个属性值的情况有很多。 2.item:遍历的每一项,变量名,值为从迭代对象中取出的每一个值。 3.index:索引的属性名,在集合数组情况下值为当前索引值, 当选代循环的对象是 Map 类型时,这个值为 Map 的 key (键值)。 4.open:整个循环内容开头的字符串 。 5.close: 整个循环内容结尾的字符串。 6.separator:每次循环的分隔

接口

public List selectProviderList(Map map)throws Exception;

xml

sql语句

CREATE TABLE `smbms_provider` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',`proCode` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '供应商编码',`proName` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '供应商名称',`proDesc` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '供应商详细描述',`proContact` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '供应商联系人',`proPhone` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '联系电话',`proAddress` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '地址',`proFax` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '传真',`createdBy` bigint(20) DEFAULT NULL COMMENT '创建者(userId)',`creationDate` datetime DEFAULT NULL COMMENT '创建时间',`modifyDate` datetime DEFAULT NULL COMMENT '更新时间',`modifyBy` bigint(20) DEFAULT NULL COMMENT '更新者(userId)',PRIMARY KEY (`id`) USING BTREE) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ROW_FORMAT=COMPACT;INSERT INTO `smbms_provider` VALUES ('1', 'BJ_GYS001', '北京三木堂商贸有限公司', '长期合作伙伴,主营产品:茅台、五粮液、郎酒、酒鬼酒、泸州老窖、赖茅酒、法国红酒等', '张国强', '135666677', '北京市丰台区育芳园北路', '010-58858787', '1', '2013-03-21 16:52:07', null, null);INSERT INTO `smbms_provider` VALUES ('4', 'GZ_GYS002', '深圳市喜来客商贸有限公司', '长期合作伙伴,主营产品:坚果炒货.果脯蜜饯.天然花茶.营养豆豆.特色美食.进口食品.海味零食.肉脯肉', '林妮1', '185998975', '广东省深圳市福龙工业区B2栋3楼西', '0755-677341', '1', '2013-03-22 16:52:07', '2018-09-24 21:28:07', '1');INSERT INTO `smbms_provider` VALUES ('8', 'ZJ_GYS001', '慈溪市广和绿色食品厂', '长期合作伙伴,主营产品:豆瓣酱、黄豆酱、甜面酱,辣椒,大蒜等农产品', '薛圣丹1', '180999532', '浙江省宁波市慈溪周巷小安村', '0574-34449090', '1', '2013-11-21 06:02:07', '2018-09-28 19:54:31', '1');INSERT INTO `smbms_provider` VALUES ('9', 'GX_GYS001', '优百商贸有限公司', '长期合作伙伴,主营产品:日化产品', '李立国', '133266543', '广西南宁市秀厢大道42-1号', '0771-988614', '1', '2013-03-21 19:52:07', null, null);INSERT INTO `smbms_provider` VALUES ('18', '12', '234', '123', '234', '15815891967', '213', '123', '1', '2018-09-26 12:55:42', null, null);

测试

@Testpublic void selectProviderList() throws Exception { SqlSession session = MybatisUtils.getSqlSessionFactory(); ProviderMapper mapper = session.getMapper(ProviderMapper.class); Map map = new HashMap<>(); ArrayList listId = new ArrayList(); listId.add(4); listId.add(1); map.put("itemId",listId); List list = mapper.selectProviderList(map); for (Provider provider : list) { System.out.println(provider); }}

总结: 1.listId:在List集合里面添加 id 2.然后把listIdput进map 3.通过foreach 的 collection集合接收itemId的参数,再把item的值(可不能随意填,要sql语句查询的字段名一致),通过你要查询的id放进去

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:getInstance
下一篇:docker服务部署Naco单机版
相关文章

 发表评论

暂时没有评论,来抢沙发吧~