您的位置:首页 > 其它

Mybatis的输入映射配置

2020-02-03 00:28 246 查看

输入映射parameterType

parameterType可以指定输入的参数类型,其中包括的类型有普通java类型、hashmap类型和pojo类型。

为pojo类的时候

  • 如果查询时候需要传入多个查询条件,那么可以使用包装类进行封装。

例如需要进行下面这样配置的查询:

<!-- 多个查询条件,测试包装类 -->
<select id="findUserList" parameterType="userqueryvo" resultType="usercustom">
select * from user where user.sex = #{userCustom.sex}
and user.username = #{userCustom.username}
</select>
  • 接口配置如下:
public List<UserCustom> findUserList(UserQueryVo userQueryVo);

包装类内容如下:

public class UserQueryVo {
//包装属性,并且添加get、set方法
private UserCustom userCustom;

public UserCustom getUserCustom() {
return userCustom;
}

public void setUserCustom(UserCustom userCustom) {
this.userCustom = userCustom;
}

}
  • 测试代码如下:
@Test
public void testFindUserList() {
SqlSession session = factory.openSession();

UserMapper userMapper = session.getMapper(UserMapper.class);

UserCustom userCustom = new UserCustom();
userCustom.setSex("1");
userCustom.setUsername("小明");

UserQueryVo userQueryVo = new UserQueryVo();
userQueryVo.setUserCustom(userCustom);

List<UserCustom> userCustoms = userMapper.findUserList(userQueryVo);

for(UserCustom u:userCustoms) {
System.out.println(u);
}
}

为hashmap的时候

  • sql语句如下:
<!-- 测试hashmap -->
<select id="findUserHash" parameterType="hashmap" resultType="usercustom">
select * from user
where user.sex = #{sex} and user.username = #{username}
</select>
  • 接口如下:
public List<UserCustom> findUserHash(HashMap<String, Object > hashMap);
  • 测试代码如下:
@Test
public void testFindUserHash() {
SqlSession session = factory.openSession();

UserMapper userMapper = session.getMapper(UserMapper.class);

HashMap<String, Object> hashMap = new HashMap<String, Object>();
//key的值必须和sql语句中的一直
hashMap.put("sex", 1);
hashMap.put("username", "王小明");
List<UserCustom> userCustoms = userMapper.findUserHash(hashMap);

for(UserCustom u:userCustoms) {
System.out.println(u);
}
}

为普通java类型的时候

  • 略^^
  • 点赞
  • 收藏
  • 分享
  • 文章举报
千禧0410 发布了11 篇原创文章 · 获赞 0 · 访问量 163 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: