mybatis中带下划线变量的映射问题
mybatis从数据库里获取信息映射到实体类的时候,带下划线的数据映射不过来。。。。比如我定义一个实体类Categoryintid;intparent_id;String...
mybatis从数据库里获取信息映射到实体类的时候,
带下划线的数据映射不过来。。。。
比如我定义一个实体类Category
int id;
int parent_id;
String name;
String en_name;
数据库对应的表:category
int id;
int parent_id;
varchar name;
varchar en_name;
我用mybatis取数据库中这四个字段的时候,id 和name 都能正常取到,但是带下划线的parent_id 、en_name 都取不到,,,
把它们改成驼峰式praentId enName 就可以了,,,,
不想去改数据库字段啊,好麻烦,有其他办法解决吗? 展开
带下划线的数据映射不过来。。。。
比如我定义一个实体类Category
int id;
int parent_id;
String name;
String en_name;
数据库对应的表:category
int id;
int parent_id;
varchar name;
varchar en_name;
我用mybatis取数据库中这四个字段的时候,id 和name 都能正常取到,但是带下划线的parent_id 、en_name 都取不到,,,
把它们改成驼峰式praentId enName 就可以了,,,,
不想去改数据库字段啊,好麻烦,有其他办法解决吗? 展开
2个回答
展开全部
<!-- 是否开启自动驼峰命名规则(camel case)映射, -->
<setting name="mapUnderscoreToCamelCase" value="true"/>
mybatis配置文件设置了这项后,查询出来的字段如果带下划线,那么就会去掉下划线,然后采用java驼峰规则。比如数据库字段Parent_id,那么查询出来后,会转为parentid,然后去实体类Category匹配对应的字段。 因为你实体类里有下划线,所以匹配不上。要么采用resultMap 要么禁用掉驼峰规则(不建议禁用)。如果不想该实体类的话,建议采用resultMap。
<setting name="mapUnderscoreToCamelCase" value="true"/>
mybatis配置文件设置了这项后,查询出来的字段如果带下划线,那么就会去掉下划线,然后采用java驼峰规则。比如数据库字段Parent_id,那么查询出来后,会转为parentid,然后去实体类Category匹配对应的字段。 因为你实体类里有下划线,所以匹配不上。要么采用resultMap 要么禁用掉驼峰规则(不建议禁用)。如果不想该实体类的话,建议采用resultMap。
展开全部
我一般都用自定义的resultMap
<!-- type指向你的javabean类,id可以自定义 -->
<resultMap type="Category" id="category">
<!-- property对应实体类的属性名称,column为数据库结果集的列的名称 -->
<id property="id" column="id" />
<result property="parent_id" column="parent_id"/>
<result property="name" column="name"/>
<result property="en_name" column="en_name"/>
</resultMap>
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询