MyBatis数据库列名和bean属性名不相同映射处理

MyBatis数据库列名和bean属性名不相同映射处理

当你的数据库列名和bean属性名不相同时,会报下面这种错误

org.apache.ibatis.builder.IncompleteElementException: Could not find result map 'com.houpu.mybatis.mapper.UserMapper.base_name' referenced from 'com.houpu.mybatis.mapper.UserMapper.findAll'

第一种方法

MyBatis会自动去匹配bean里面的配置,但他找不到表相匹配的bean。会报错
处理方法:在Mapper.xml或Dao.xml(一般这么命名)加入

   <resultMap id="base_name" type="com.houpu.mybatis.bean.User">//id名和查询语句的resultMap相匹配
    <!--id代表配置主键-->
    <id property="id" column="userId"></id>
    <!--result代表配置非主键字段,实际上id可以不用,可以全写为result-->
    <result property="name" column="username"></result>
    <result property="birth" column="birthday"></result>
    <result property="gender" column="sex"></result>
    <result property="addr" column="address"></result>
</resultMap>


<select id="findAll" resultMap="base_name">
    select * from user
</select>

< resultMap>< /resultMap>里面填写bean和列名相匹配 property填写bean的属性名,column填写数据库中的列名

第二种方法

在查询语句中加入字段名

<select id="findAll" resultMap="base_name">
    select 数据库列名 as bean属性名, 数据库列名 as bean属性名 from user
</select>
发布了68 篇原创文章 · 获赞 7 · 访问量 2530

猜你喜欢

转载自blog.csdn.net/Cui6023056/article/details/104390978
今日推荐