mybatis——输入映射

parameterType(输入类型)

一.简单的数据类型(参数只有一个)

取值可以使用:

  • 1.#{任意变量名}
  • 2.${value}
  • 3.${_parameter}

二.pojo类型

取值可以使用:(用nogl表达式解析pojo对象属性名对应的值)

  • 1.#{pojo对象的属性名}
    可以将java类型参数(String)和数据库类型(char,varchar)进行一个数据转换
  • 2.${pojo对象的属性名}
    原封不动的将值取出来,必要时还需要加单引号’’,然后与sql语句进行一个拼接
    缺点是不能防止sql注入

三.pojo对象的包装类型(重点)

[需要传多个参数]
将User和视图层需要传的其他参数(如id)封装成一个类UserQueryvo(UserQueryViewObject)
在这里插入图片描述

下面是使用pojo对象的包装类型代码
①.UserQueryvo

package com.jp.pojo;

public class UserQueryvo {
	private User user;
	//扩展的字段,这样添加字段不会影响User
	private int producteId;
	public User getUser() {
		return user;
	}
	public void setUser(User user) {
		this.user = user;
	}
	public int getProducteId() {
		return producteId;
	}
	public void setProducteId(int producteId) {
		this.producteId = producteId;
	}
}

②.UserMapper接口

//根据id修改User对象
List<User> getUserListByUserQueryvo(UserQueryvo vo);

③.UserMapper.xml配置

<!-- 根据id修改User对象 -->
<select id="getUserListByUserQueryvo" parameterType="com.jp.pojo.UserQueryvo" resultType="com.jp.pojo.User">
	select id,username,sex,address,birthday from user1 
	where username like '%${user.name}%';
</select>

④.测试类

@Test
public void tesGetUserListByUserQueryvo(){
	SqlSession sqlSession = sqlSessionFactory.openSession();
	UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
	UserQueryvo vo=new UserQueryvo();
	User user=new User();
	user.setName("张");
	vo.setUser(user);
	vo.setProducteId(1);
	List<User> userList = userMapper.getUserListByUserQueryvo(vo);
	System.out.println(userList.size());
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值