当前位置: 首页 > 后端技术 > Java

Mybatis的复杂操作

时间:2023-04-02 01:10:58 Java

最近在项目中遇到了一些以前没有遇到过的查询和实现。希望对正在解决工作中问题的你有所帮助。1、JSON数组查询,对于mysql5.7及以上,数据库字段类型为JSON类型。查询json数组下标为0的元素(批发)json_extractSELECTd.id,d.name,d.nameasequipment_name,d.code,d.sn_code,d.model_code,d.city_code,d.district_code,d.install_unit_code,d.bid_unit_code,d.repair_unit_code,m.category_code,m.pattern,m.nameASmodel_name,m.brand_code,d.warranty,d.warrantyasguarante_period,d.warranty_status,d.warranty_time,d.gmt_created,d.gmt_modified,d.created_by,d.modified_by,d.school_code,d.build_code,d.house_num,d.statusFROMdevice_devicedjoindevice_modelmond.model_code=m.code0">ANDjson_extract(d.device_status,'$[0]')在#{item}2.查询JSON字符串某个符合要求的元素JSON_CONTAINSselect*from`area_school`0">和organization_codein#{schoolCode}andfloor_code=#{floorCode}和JSON_CONTAINS(`area_room`,JSON_OBJECT('houseNum',#{houseNum}))andJSON_CONTAINS(`area_room`,JSON_OBJECT('dictionaryCode',#{dictionaryCode}))orderbyorganization_codedesc3.根据集合编号进行更新<更新id="updateStatusBatch"parameterType="java.lang.Integer">更新`device_device`当code=#{item.code}then#{item.deviceStatus}#{item中的代码.code}4.根据集合对象批更新wh然后更新`device_device`当sn_code=#{item.snCode}然后#{item.installUnitCode}当sn_code=#{item.snCode}然后#{item.repairUnitCode}当sn_code=#{item.snCode}然后#{item.bidUnitCode}其中is_delete=false和sn_codein#{item.snCode}