zoukankan      html  css  js  c++  java
  • Mybatis:ResultMap

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

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

  • 相关阅读:
    捕获异常的两种方式Exception
    线程的随机性
    单例模式简单解析--Singleton 单例模式(懒汉方式和饿汉方式)
    LeetCode 116. 填充每个节点的下一个右侧节点指针
    LeetCode 129. 求根到叶子节点数字之和
    LeetCode 124. 二叉树中的最大路径和
    LeetCode 119. 杨辉三角 II
    LeetCode 118. 杨辉三角
    LeetCode 113. 路径总和 II
    LeetCode 114. 二叉树展开为链表
  • 原文地址:https://www.cnblogs.com/zitai/p/11816088.html
Copyright © 2011-2022 走看看