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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章