MyBatis关系映射
静态代理实现
1.需要编写StudentMapper.xml文件,具体的执行sql语句要保存其中
2.StudentMapper.xml文件中mapper的namespace属性的值可以随意指定,没有严格意义要求,唯一即可。
3.静态代理Dao层必须要有具体的实现类,这是和动态代理最大的区别
4.MyBatisConfig.xml核心配置文件中需要导入具体的StudentMapper.xml文件,例如:
1 | <mappers> |
- 5.Dao层实现类,示例代码:
1 | /** |
动态代理-xml实现
- 1.需要编写StudentMapper.xml文件,具体的执行sql语句要保存在其中
- 2.StudentMapper.xml文件中mapper的namespace属性的值必须为Dao层接口的路径
1 | <mapper namespace="com.itheima.dao.StudentDao"> |
- 3.动态代理Dao层没有具体的实现类,只保留接口即可,具体的实现在Service层的实现类中进行实现
- 4.MyBatisConfig.xml核心配置文件中需要导入具体的StudentMapper.xml文件
1 | <mappers> |
- 5.Service层实现类,示例代码:
1 |
|
动态代理-注解实现
- 1.不需要StudentMapper.xml文件,具体的执行的sql语句在Dao接口方法上通过注解方式进行提供
- 2.动态代理Dao层没有具体的实现类,只保留接口即可,具体的实现在Service层的实现类中进行实现
- 3.MyBatisConfig.xml核心配置文件中需要指定具体的dao层接口路径,通常dao层中接口很多,指定的路径通常指向dao层,例如:
1 | <mappers> |
- 4.Service层实现类,示例代码:
1 |
|
- 5.Dao层接口方法具体的注解实现,示例:
1 | //查询所有学生信息 |