1. 程式人生 > 實用技巧 >Mybatis-05-Map妙用

Mybatis-05-Map妙用

  • 通過map可以不用知道資料庫中表有幾列,寫sql語句時也不用把物件中所有的屬性都寫一遍

  • 假設我們的資料庫中的表的欄位過多,可以考慮使用map

    • 示例一:Map查詢資料

      • 介面類

        User selectByIdAndName(Map<String,Object> map);
      • 介面類的實現

        <select id="selectByIdAndName" parameterType="map"         resultType="User">
        select * from mybatistest where id = #{Id} and name = #{Name};
        </select>
      • 測試

        public static void selectByIdAndName(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();

        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
        Map<String,Object> map = new HashMap<String, Object>();
        map.put("Id",1);
        map.put("Name","洪夢霞");
        User user = userMapper.selectByIdAndName(map);
        System.out.println(user);

        sqlSession.close();
        }
    • 示例二:Map插入資料

      • 介面類

        int insertUser(Map<String,Object> map);
      • 介面類的實現

        <insert id="insertUser" parameterType="map">
        insert into mybatistest (id,name,pwd) values (#{mapId},#{mapName},#{mapPwd});
        </insert>
      • 測試

        public static void insertUser(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();

        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("mapId",4);
        map.put("mapName","小葉子");
        map.put("mapPwd","985");
        userMapper.insertUser(map);
        sqlSession.commit();

        sqlSession.close();
        }