mybatis使用 datamap作为返回的数据,返回的结果存在既有大写又有小写的问题

    技术2022-07-10  132

    mybatis中使用 datamap作为返回数据容器,当数据起了别名的情况下,数据为别名的大小写状态,当数据不起别名的情况下,数据有大写也有小写。 比如如下的sql:

    select a.status, a.state, b.org_id, b.org_name, ifnull(b.economic_type,'暂无') economic_Type, ifnull(b.org_address,'暂无') org_address, ifnull(b.business_scope,'暂无') business_scope, ifnull(substr(b.REG_DATE,1,7),'暂无') reg_date, b.CORPORATE, round(b.REG_CAPITAL,0) REG_CAPITAL, ifnull(b.truescore, 0) score, ifnull(b.ENTER_STATE,'暂无') ENTER_STATE, b.ORG_ADDRESS, b.org_contact from tb_risk_attention_org a left join view_ts_organ_gz b on a.attention_org_id = b.org_id where a.user_id = #{userId} and a.state = '1' and b.org_name like concat('%',concat(#{companyName},'%')) limit #{pageStart},#{pageSize}

    前台查询出来的结果: 1.status sql小写,前台结果小写 2.org_name sql小写 前台结果 大写 3.economic_Type 起了别名,前台和sql中的别名一致 这是什么原因呢? :数据库问题。 mysql数据库,默认的排序规则大小写是不敏感的。 mybatis中写的小写,可能数据库中的字段是大写的。如此,前台获取到的字段就是大写。比如:org_name 数据表中的 org_name是大写的 前台返回的就是数据库中的大写。 而 status数据库中是小写的 前台返回的就是数据库中的小写 这就说明,mybatis中字段的大小写不重要,重要的是数据库中的字段的大小写。一方面,我们应该规范数据库设计,统一字段大小写,如果数据来源比较复杂,统一不了大小写,那么查询出来的字段,应该尽量全部进行起别名操作,实现字段的大小写格式统一。 baymin。

    Processed: 0.015, SQL: 12