myBatis中的Mapper代理

最近迷失在人生的道路上,导致学习的进度有点慢,博客也懒得写了。。。今天稍微总结下当天学的一点Mapper代理知识吧

myBatis中原始Dao开发的问题

1.代码量大,耦合性高
2.很多代码是写死的,不利于维护

Mapper接口代理的作用

1.程序员只需编写Mapper接口和Mapper.xml,并让二者遵循相关规范即可,代码简洁高效
2.框架利用反射机制方便灵活易于维护

简单的流程

1.创建Mapper接口
public interface TeacherMapper {
<span style="white-space:pre">	</span>public Teacher findById(String id);
	...
}
2.根据如下规范创建Mapper.xml
规范1:namespace与Mapper接口名称一致
规范2:statement的id与Mapper接口的方法名一致
规范3:statement的parameterType与Mapper接口的形参类型一致
规范4:statement的resultType与parameterType接口的返回值类型一致
形如:
<mapper namespace="demo.TeacherMapper">
	<select id="findById" resultType="bean.Teacher" parameterType="java.lang.String">
		SELECT * FROM view_teachers
		<where>
			id=#{id}
		</where>
	...
</mapper>
3.Java代码如下:
SqlSession session = DBAccess.getSqlSession();
		TeacherMapper mapper = session.getMapper(TeacherMapper.class);
		System.out.println(mapper);
		Teacher teacher = mapper.findById("123123");
		System.out.println(teacher);
		session.close();
输出结果为:

可见遵循如上规范myBatis会通过反射为我们实现该接口中的方法


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值