MyBatis的实体 在取名时可以加下划线吗?

实体里加下划线让名字和数据库字段,对应,自己试了试 是可以的,为什么百度了半天都没人这么做呢?,都是要加配置,,,,不可以直接加吗?还是有什么原因会报错什么?小白不懂

2个回答

不可以加。字段如果带下划线,那么就会去掉下划线,然后采用java驼峰规则。比如数据库字段Parent_id 。那么查询出来后,会转为parentid,然后去实体类Category匹配对应的字段。 因为你实体类里有下划线会导致所以匹配不上。要么采用resultMap 要么禁用掉驼峰规则(不建议禁用)。如果不想该实体类的话,建议采用resultMap。

加是可以加的,但是一般不会这么做,一般我们实体因为有大小写敏感的关系命名是遵循驼峰原则的。而数据库可能会关闭大小写敏感,因此一般命名都是全大写或小写,通过下划线分隔。
至于实体字段和数据库字段的对应关系,在mybatis里面通过配置resultMap即可。如下。
另外,推荐你使用mybatisgenerator这个工具,直接生产pojo类和sqlMap,很好用http://www.mybatis.org/generator/

<resultMap id="BaseResultMap" type="com.demo.base.dto.ReceiverOrderFlowDO" >
        <id column="flow_id" property="flowId" jdbcType="VARCHAR" />
        <result column="order_id" property="orderId" jdbcType="VARCHAR" />
        <result column="receiver_user_id" property="receiverUserId" jdbcType="BIGINT" />
        <result column="receiver_order_state" property="receiverOrderState" jdbcType="VARCHAR" />
        <result column="order_msg" property="orderMsg" jdbcType="VARCHAR" />
        <result column="datachange_createtime" property="datachangeCreatetime" jdbcType="TIMESTAMP" />
    </resultMap>
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问