mybatis详解(四)输入映射和输出映射

parameterType

常规的八大数据类型、引用类型以及pojo的封装类

mapper中的所有方法中的参数,提取出来放到一个包装类中,开发mapper的时候所有参数如果有就传,这个包装类类型。

在包装类中,加上对应的参数类型。在mapper.xml中使用ognl的方式去读取参数


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;
    }

    @Override
    public String toString() {
        return "QueryVo{" +
                "user=" + user +
                ", id=" + id +
                '}';
    }
}

 


    List<User>findUserByNameAndSex(QueryVo queryVo);

}

 

<select id="findUserByNameAndSex" parameterType="cn.hd.param.QueryVo" resultType="cn.hd.param.User" >
   SELECT * FROM mbs WHERE id = #{user.name} and sex=#{user.sex}
</select>

 

@Test
public void fun5() throws IOException {
    InputStream resourceAsStream = Resources.getResourceAsStream("cn/hd/param/sqlMapConfig.xml");
    SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream);
    SqlSession sqlSession = build.openSession();
    UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    QueryVo queryVo = new QueryVo();
    User user = new User();
    user.setName("莫邪");
    user.setSex("");
    queryVo.setUser(user);
    List<User> userByNameAndSex = mapper.findUserByNameAndSex(queryVo);
    sqlSession.commit();
    sqlSession.close();
    System.out.println(userByNameAndSex);
}

输出映射

2种方式

(1)resultType

如果数据库中的字段和实体类中保持一致,使用该属性;

你想要的数据在实体类和数据库中保持一致

(2)resultMap

你想要的数据在实体类和数据库中不一致,又想拿到这个值,就要手动映射

 

Sql语句中的resultMap中的参数和上面的resultMap中的id保持一致,type就是要转化的类型,id主键普通属性

Column数据库字段名  

property     实体类的属性名

javaType实体类类型

jdbcType数据库类型

TypeHandler类型控制器


<resultMap id="find" type="cn.hd.param.User">
   <id column="id" property="stuId"></id>

<result column=name property=name></result>
</resultMap>
<select id="find" parameterType="cn.hd.param.User" resultMap="find">
   SELECT * FROM mbs
</select>

 


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

double_lifly

点喜欢就是最好的打赏!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值