首页 > 其他 > 详细

Mybatis:ResultMap

时间:2019-11-07 23:23:13      阅读:95      评论:0      收藏:0      [点我收藏+]

ResultMap:

解决的问题:属性名和字段名不一致。

解决方法

  • sql语句中设置别名
  • 使用ResultMap标签定义映射字段

 

下面着重介绍ResultMap方法:

部分环境设置:

  • 数据库字段如下:

技术分享图片

 

  • User实体类设置:
public class User {

    private int id;  //id
    private String name;   //姓名
    private String password;   //密码和数据库不一样!
    
    //构造
    //set/get
    //toString()
}
  • UserMapper.java接口:
//根据id查询用户
User selectUserById(int id);
  • Usermapper.xml中select标签:
<select id="selectUserById" resultType="user">
select * from user where id = #{id}
</select>

  resultType填写之后要填写的resultType标签的id。

  • resultType设置:
<resultMap id="UserMap" type="user">
        <!-- id为主键 -->
        <!--<id column="id" property="id"/>
        <result column="name" property="name"/>-->
        <!-- column是数据库表的列名 , property是对应实体类的属性名 -->
        <result column="pwd" property="password"/>
    </resultMap>

对于字段名跟实体类中的属性名相同就可不需配置,字段名和属性名不同才需要配置。

测试:

技术分享图片
@Test
    public void test01(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();

        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
        List<User> users = userMapper.selectUser();

        logger.info("info:进入了testlog4j方法");
        logger.debug("debug:进入了testlog4j方法");
        logger.error("error:进入了testlog4j方法");

        for (User user : users) {
            System.out.println(user);
        }

        sqlSession.close();
    }
test

 

ResultMap不单单能解决字段与属性名不一致的问题,也能轻松解决数据库字段映射实体复杂类型的问题,也就是解决数据库一对多,多对一的情况。

如果世界总是这么简单就好了(#^.^#)

 

 

 

 

 

 

 

 

 

Mybatis:ResultMap

原文:https://www.cnblogs.com/zitai/p/11816088.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!