java
Mapper 接口开发方法只须要程序员编写Mapper 接口(至关于Dao 接口),由Mybatis 框架根据接口定义建立接口的动态代理对象,代理对象的方法体同上边Dao接口实现类方法mysql
总结:接口代理方式,其实就咱们本身不用实现MapperImpl(持久层实现类),mybatis经过接口代理的方式帮助咱们实现git
Mapper 接口开发须要遵循如下规范:程序员
1) Mapper.xml文件中的namespace与mapper接口的全限定名相同github
2) Mapper接口方法名和Mapper.xml中定义的每一个statement的id相同sql
3) Mapper接口方法的输入参数类型和mapper.xml中定义的每一个sql的parameterType的类型相同数据库
4) Mapper接口方法的输出参数类型和mapper.xml中定义的每一个sql的resultType的类型相同apache
以下图:session
实现步骤:mybatis
删除 mapper 层接口的实现类(新建一个项目mybatis02,将第一天的代码所有复制过来)
修改映射配置文件
<!-- 将命名空间修改成StudentMapper全路径名-->
<mapper namespace="com.itheima.mapper.StudentMapper">
修改 service 层接口的实现类,采用接口代理方式实现功能(由于如今没有持久层实现类了,因此业务层没法直接调用,须要本身实现而且调用代理接口方式的MapperImpl)
package com.itheima.service.impl;
import com.itheima.bean.Student;
import com.itheima.mapper.StudentMapper;
import com.itheima.service.StudentService;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
/*
业务层实现类
*/
public class StudentServiceImpl implements StudentService {