当前位置: 代码迷 >> 综合 >> mybatis和json的用法
  详细解决方案

mybatis和json的用法

热度:21   发布时间:2023-09-20 14:32:13.0

ibatis中in的用法,传过去的ids就是一个用逗号隔开的字符串,以及group_concat()的用法学习

  <select id="getClientIdsNamesByMap" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">SELECTGROUP_CONCAT( clientname ) realclientnames,GROUP_CONCAT( clientId ) realclientids FROMv_clientinfo a WHERE   statusid = 21    <isNotEmpty prepend=" and " property="ids">a.clientId in ($ids$)			  </isNotEmpty>	       <isNotEmpty prepend=" and " property="codes">a.clientCode in ($codes$)			  </isNotEmpty>ORDER BYclientid ASC	</select>

ibaits中in第二种的用法:先转换成数组,在xml中的用法

              String conStatus = "1,2,3";if("".equals(conStatus)){mapjson.put("status", null);}else{mapjson.put("status", conStatus.split(","));}<isNotEmpty prepend="and" property="status">m.applyStatus in<iterate open="(" close=")" conjunction="," property="status">#status[]#</iterate></isNotEmpty>

 json字符串转换成对象或者list集合

[{"occupyOrRelease": 1,"clientCode": "2021011902","occupyDate": "2021-02-21","voucherCode": "test20210010","code": "test20210010","transactionAmount": 100,"inputUserId": 20,"loanSubTypeCode": "GYLBL","crecatCode": "004"},{"occupyOrRelease": 1,"clientCode": "20210119011","occupyDate": "2021-02-21","voucherCode": "test20210010","code": "test20210011","transactionAmount": 100,"inputUserId": 20,"loanSubTypeCode": "GYLBL","crecatCode": "004"}
]上面json字符串转换成多个map对象的list集合:Map map = nullList list = JSONArray.parseArray(jsonStr);		for(int j=0;j<list.size();j++){			map = (Map) list.get(j);System.out.println(map);}
{"occupyOrRelease": 1,"clientCode": "2021011902","occupyDate": "2021-02-21","voucherCode": "test20210010","code": "test20210010","transactionAmount": 100,"inputUserId": 20,"loanSubTypeCode": "GYLBL","crecatCode": "004"
}这个json字符串转成map对象Map map = JSON.parseObject(jsonStr);