Mybatis框架輸入映射和輸入映射

輸入映射

parameterType

常規     pojo類      pojo的封裝類

將mapper中的所有方法中的參數提取出來放到一個包裝類中,開發mapper的時候所有的參數如果有就傳這個包裝類類型。

       在包裝類中,加上對應的參數類型。在mapper.xml中使用Ognl的方式去讀取參數。

package cn.hd.param;


import cn.hd.pojo.User;

public class QueryVo {
    private User user;
    private Integer id;

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }
   
}

 

<select id="findUserByNameAndSex" parameterType="cn.hd.param.QueryVo"

resultType="cn.hd.pojo.User">
    SELECT * FROM t_user WHEREname=#{user,id} AND sex={user,id}
</select>

 

public interface UserMapper {

    User findUserById(QueryVo queryVo);
    Integer add(QueryVo queryVo);
   List<User>findUserByNameAndSex(QueryVo queryVo);
}

 

@Test

    public void fun1() throws IOException {
        InputStream in = Resources.getResourceAsStream("cn/hd/param/sqlMapConfig.xml");
        SqlSessionFactory sessionFactory= new SqlSessionFactoryBuilder().build(in);
        SqlSession sqlSession =sessionFactory.openSession();
        UserMapper mapper =sqlSession.getMapper(UserMapper.class);

        QueryVo queryVo = new QueryVo();
        List<User> user =mapper.findUserByNameAndSex(queryVo);
        System.out.println(user);
        sqlSession.close();
    }
}

輸出映射

兩種方式

1.   resultType

如果數據庫中的字段和實體類中保持一致,使用該屬性。

你想要的數據在實體類和數據庫中保持一致。

2.   resultMap

你想要的數據在實體類和數據庫中的字段不一致的時候,又想拿到這個值,就要自己手動映射。

Sql語句中resultMap中的參數和上面的resultMap中的id保持一致。Type就是要轉化的類型。 id主鍵 result普通主鍵

Column數據庫字段名  property實體類的屬性名     JavaType實體類類型 jdbcType數據庫類型         TypeHandler類型控制器

<resultMap id="newUsers" type="cn.hd.pojo.newUser">

    <id column="id" property="userId"></id>
    <result column="name" property="name"></result>
</resultMap>
<select id="find" resultMap="newUsers">
    SELECT * FROM t_user
</select>


發佈了87 篇原創文章 · 獲贊 381 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章