MyBatis 输入参数

MyBatis的Dao映射配置中有个叫parameterType的属性,该属性代表输入参数类型,对应Dao接口方法的参数类型。MyBatis的输入参数类型包含以下几种:

  1. 基本类型
  2. Pojo类型
  3. 包装Pojo类型

1 基本类型

1.1 Dao方法

//输入映射
public void testParameterType(String name);

1.2 Dao映射配置

<insert id="testParameterType" parameterType="string">
	INSERT INTO t_customer(NAME) VALUES(#{name})
</insert>	

1.3 测试类

/**
 * 输入映射-基本类型
 * 一点教程网 - www.yiidian.com
 */
@Test
public void test1(){
	SqlSession sqlSession = MyBatisUtils.getSession();
	//getMapper(): 返回指定接口的动态代理的实现类对象
	CustomerDao dao = sqlSession.getMapper(CustomerDao.class);
	dao.testParameterType("张三");
	sqlSession.commit();
	sqlSession.close();
}

2 Pojo类型

2.1 Dao方法

public void testParameterType(Customer c);

2.2 Dao映射配置

<insert id="testParameterType" parameterType="com.yiidian.domain.Customer">
	INSERT INTO t_customer(NAME,gender,telephone) VALUES(#{name},#{gender},#{telephone})
</insert>

2.3 测试类

/**
 * 输入映射-Pojo类型
 * 一点教程网 - www.yiidian.com
 */
@Test
public void test1(){
	SqlSession sqlSession = MyBatisUtils.getSession();
	//getMapper(): 返回指定接口的动态代理的实现类对象
	CustomerDao dao = sqlSession.getMapper(CustomerDao.class);
	Customer c = new Customer();
	c.setName("张三2222");
	c.setGender("男");
	c.setTelephone("13211112222");
	dao.testParameterType(c);
	sqlSession.commit();
	sqlSession.close();
}

3 包装Pojo类型

3.1 Dao方法

public void testParameterType(CustomerVo c);

3.2 Dao映射配置

<insert id="testParameterType" parameterType="com.yiidian.domain.CustomerVo">
	INSERT INTO t_customer(NAME,gender,telephone) VALUES(#{customer.name},#{customer.gender},#{customer.telephone})
</insert>

3.3 包装Pojo类型

/**
* 包装Pojo类型
* 一点教程网 - www.yiidian.com
*/
public class CustomerVo {
	private Customer customer;
	public Customer getCustomer() {
		return customer;
	}

	public void setCustomer(Customer customer) {
		this.customer = customer;
	}
	
}

3.3 测试类

/**
* 输入参数 - 包装Pojo类型
* 一点教程网 - www.yiidian.com
*/
@Test
public void test1(){
	SqlSession sqlSession = MyBatisUtils.getSession();
	//getMapper(): 返回指定接口的动态代理的实现类对象
	CustomerDao dao = sqlSession.getMapper(CustomerDao.class);

	CustomerVo vo = new CustomerVo();
	Customer c = new Customer();
	c.setName("张三");
	c.setGender("男");
	c.setTelephone("13211112222");
	vo.setCustomer(c);
	
	dao.testParameterType(vo);
	
	sqlSession.commit();
	sqlSession.close();
}

 

一点教程,一个分享编程知识的公众号。跟着站长一起学习和进步。

通俗易懂,深入浅出,一篇文章只讲一个知识点。

在公交、在地铁、在厕所都可以阅读,随时随地涨姿势。

文章不涉及代码,不烧脑细胞,人人都可以学习。

当你决定关注「一点教程」,你已然超越了90%的程序员!

一点教程二维码