大前端

前端学习之家-大前端

mybatis的动态代理

mybatis项目实例(注意左边的文件目录形式):
实体类Students:
在这里插入图片描述
实体类接口StudentsDao:
在这里插入图片描述
实体类接口对应的.xml文件(StudentsDao.xml):
在这里插入图片描述
mybatis.xml文件:
在这里插入图片描述
生成sqlSession的封装类MybatisUtils:
在这里插入图片描述
main()中方法执行操作:
在这里插入图片描述
其实在上述mybatis项目模板中,根本没有使用到实体类接口StudentsDao,而是通过sqlId从StudentsDao.xml文件中获取了select中的sql语句,然后对本地数据库执行了操作。
如果修改StudentDao.xml文件如下:
在这里插入图片描述
再修改main()中内容 :
在这里插入图片描述
程序一样可以执行:
在这里插入图片描述
而改用动态代理:
通过sqlSession的getMapper()方法,通过传递StudentDao.class(StudentDao字节码文件中的Class对象)参数,来获取StudentDao.xml文件中的mapper标记通过namespace属性指定的接口,生成一个接口对象,调用接口对象的方法即映射到mapper中id为该方法名的标记中的sql语句,然后去操作本地数据库。
在这里插入图片描述
在这里插入图片描述
此时实体类接口的xml文件中的mapper标记中的namespace和select的标记中的id属性值不能随意写,否则会报错:
在这里插入图片描述
在这里插入图片描述

发表评论:

Copyright Your WebSite.Some Rights Reserved.