MyBaits总结(十四)--MyBatis_映射文件_参数处理_POJO&Map&TO

代码来自:MyBatis总结(十三)--参数处理_单个参数&多个参数&命名参数

本文内容来自尚硅谷

MyBatis总结(十三)--参数处理_单个参数&多个参数&命名参数中多个参数时解决办法是通过在dao中使用注释给每个参数命名的方式来解决问题。下面提供更加好的更精确的方式来解决问题

目录

1如果入参是多个参数且都是业务逻辑的数据模型,则我们可以直接传入POJO

1.1Junit写法如下

1.2映射文件如下

2如果入参是多个参数,且不是业务模型中的数据(及没有对应的POJO),不经常使用。这时传入map对象就可以了

2.1Junit写法如下

2.2dao文件如下

2.3映射文件如下

3如果入参是多个参数且经常使用如分页操作,可以使用一个dto对象使


1如果入参是多个参数且都是业务逻辑的数据模型,则我们可以直接传入POJO

1.1Junit写法如下

	public void test03() throws IOException{
		
		SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
		//1、获取到的SqlSession不会自动提交数据
		SqlSession openSession = sqlSessionFactory.openSession();
		
		try{
			EmployeeMapper mapper = openSession.getMapper(EmployeeMapper.class);
			//测试添加
			Employee employee = new Employee(null, "jerry4",null, "1");
			mapper.addEmp(employee);
			System.out.println(employee.getId());
			openSession.commit();
		}finally{
			openSession.close();
		}
		
	}

1.2映射文件如下

	<insert id="addEmp" databaseId="oracle">
		<selectKey keyProperty="id" order="AFTER" resultType="Integer">
			 select EMPLOYEES_SEQ.currval from dual
		</selectKey>
 
		insert into employees(EMPLOYEE_ID,LAST_NAME,EMAIL) 
		values(employees_seq.nextval,#{lastName},#{email})
	</insert>

 

2如果入参是多个参数,且不是业务模型中的数据(及没有对应的POJO),不经常使用。这时传入map对象就可以了

2.1Junit写法如下

	@Test
	public void test04() throws IOException{
		
		SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
		//1、获取到的SqlSession不会自动提交数据
		SqlSession openSession = sqlSessionFactory.openSession();
		
		try{
			EmployeeMapper mapper = openSession.getMapper(EmployeeMapper.class);
			Map<String, Object> map = new HashMap<>();
			map.put("id", 2);
			map.put("lastName", "Tom");
			map.put("tableName", "tbl_employee");
			Employee employee = mapper.getEmpByMap(map);
			System.out.println(employee);
		}finally{
			openSession.close();
		}
	}

2.2dao文件如下

	public Employee getEmpByMap(Map<String, Object> map);

2.3映射文件如下

 	<!-- public Employee getEmpByMap(Map<String, Object> map); -->
 	<select id="getEmpByMap" resultType="com.atguigu.mybatis.bean.Employee">
 		select * from ${tableName} where id=${id} and last_name=#{lastName}
 	</select>

3如果入参是多个参数且经常使用如分页操作,可以使用一个dto对象使

这里暂时不举例子

更多入参情况可参考MyBatis总结(十五)--MyBatis_映射文件_参数处理_其他入参情况了解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值