继上一篇,本文通过mapper代理开发可以进一步解决Mybatis在开发过程中出现的硬编码问题,硬编码不利于后期的维护,所以通过mapper代理开发可以解决这一问题。
主要思路就是定义一个接口,接口中对方法与返回值类型进行声明 ,后续通过接口的实现进行sql方法调用。
主要步骤如下:
1.创建com.FZU.mapper包,在包下创建Usermapper.interface接口,接口名需要和Usermapper.xml一模一样;
2.在Usermapper.interface里对Usermapper.xml sql方法与返回值类型进行声明;
3.在resources包下创建和Usermapper接口所在路径一模一样的包,将Usermapper.xml放进去;
注意报的创建格式为com/FZU/mapper;此处为斜杠,不能是com.FZU.mapper用‘.’的话会运行报错;
创建完之后:
4.修改Usermapper.xml名称空间,更改为mapper接口的全路径com.FZU.mapper.Usermapper
修改前:
修改后:
5.更改mybatis-config.xml中的路径为resources下Usermapper.xml的全路径com/FZU/mapper/Usermapper.xml
6.修改测试类程序
主要对sql对象执行sql预计进行修改
//3.执行sql语句
//3.1获取代理接口
Usermapper mapper = sqlSession.getMapper(Usermapper.class);
//3.2接口调用方法执行sql语句
List<User> objects = mapper.selectALL();
修改前:
修改后:解决硬编码,方便后期维护。
6.完成mapper代理开发;
7.运行效果,与一般方法结果一致。
需要源码加百度云