基础操作
mapper.xml和接口同名 统一包下
mapper.xml中sql标签名和接口函数名同名
这样调用接口方法就相当于调用xml中的sql
- 在全局配置.xml中mapper的映射 写mapper.xml和接口所在包名即可
- 之前业务层用
session.selectOne/selectList("mapper完整类名+sql标签名")
- 现在接口类 接口实例化对象
InterfaceMapper interfaceAA=session.getMapper(InterfaceMapper.class);
方法调用List list=interfaceAA.sql标签名/接口函数()
- 疑问?为什么接口可以实例化对象,对象还可以调用方法
-
Proxy代理
JDK动态代理设计模式
设计模式给接口产生一个基于该接口的Proxy ,代理实现了这个接口,接口的实现类
new Proxy()的对象赋给当前接口,使用了java的多态 ANIMAL A=NEW DOG();
- 调用方法 肯定不是接口的方法,而是实现类的方法,那么这个实现类怎么重写了这个方法的呢?
反射
java把mybatis.xml解析成一个dao的实现类
Proxy类的方法通过反射找到了这个dao的实现类。