Mapper代理开发进一步解决了硬编码问题
Mapper代理开发的一般流程是:
1.定义与sql映射文件同名的Mapper接口,并且一定要将Mapper接口和sql映射文件放置在同一目录下,如图,在resources资源文件下创建一个名称与java文件夹下com.mc.mapper目录,将UserMapper.xml映射文件放入创建的目录中,注意,创建目录时每个路径间用//隔开,而不是点,因为在resources创建的目录不能识别.而在java中创建的文件夹可以识别,注意不要将UserMapper.xml之间拖动到java下的mapper中,这样是不行的,
第一步这样做就可以保证我们的项目在compile(编译)之后Mapper接口和sql映射文件放置在同一目录下
2.设置sql映射文件的namespace属性为Mapper接口全限定名
这一步的意义在于解决了不使用Mapper代理开发时namespace(命名空间)的属性是硬编码的问题
符合java项目"高内聚,低耦合"的设计理念
3.在Mapper接口中定义抽象方法,方法名必须和sql映射文件中sql语句的id保持一致,而且参数和返回值类型也必须一致
4.通过sqlsession的getMapper方法获取Mapper接口的代理对象:
5.在映射文件中设置sql语句完成sql语句执行
运行成功
我们的Mybatis 使用Mapper代理之后如果要修改我们的sql语句操作数据库,只需要改动最后一部的映射文件中的sql语句即可,对我们后期的使用提供了巨大的便捷