码迷,mamicode.com
首页 > 其他好文 > 详细

Mybatis:ResultMap

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

标签:list   使用   get   rom   多对一   utils   简单   src   字段名   

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

标签:list   使用   get   rom   多对一   utils   简单   src   字段名   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!