栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Mybatis学习笔记(二)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Mybatis学习笔记(二)

文章目录
  • 一、动态代理
  • 二、接口方法参数问题
  • 三、# 和 $的区别


一、动态代理


本次测试用例使用StudentDao接口中的方法,所以需要该接口对应的实现类,在该实现类中实现具体的方法,接口中的方法如下:

实现该方法需要如下步骤:

//1.获取SqlSession对象(省略)
//2.获取唯一标识,即dao接口对应的mapper文件中的命名空间+对应该方法的id组合的字符串
String sqlId = "com.example.dao.StudentDao.selectStudents";
//3.根据sqlId调用对应的方法
List students = sqlSession.selectList(sqlId);
//4.返回students
return students;

经过测试,该方式能够正确运行;如果没有该实现类,能正确运行吗?答案是能。我们可以通过MyBatis提供的动态代理方式,达到不写dao接口的目的,实现步骤与上文略有区别:

//1.第一步还是要获取SqlSession对象(此处代码省略)
//2.获取接口对象(参数为接口的类对象)
StudentDao dao = sqlSession.getMapper(StudentDao.class);
//3.调用接口方法
List students = dao.selectStudents();

使用动态代理的注意事项:

  1. mapper文件中的namespace的值为对应dao接口的全限定名称
  2. mapper文件中的