超全MyBatis动态代理详解(一)

126 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第7天,点击查看活动详情

动态代理

1. 动态代理开发规范

MyBatis框架使用动态代理的方式来进行数据库的访问.

Mapper接口的开发相当于是过去的Dao接口的开发。由MyBatis框架根据接口定义创建动态代理对象,代理对象的方法体同Dao接口实现类的方法。在设计时要遵守以下规范.

1. Mapper接口与Mapper.xml文件在同一个目录下

2. Mapper接口的完全限定名与Mapper.xml文件中的namespace的值相同。

3. Mapper接口方法名称与Mapper.xml中的标签的statement 的ID完全相同。

4. Mapper接口方法的输入参数类型与Mapper.xml的每个sql的parameterType的类型相同

5. Mapper接口方法的输出参数与Mapper.xml的每个sql的resultType的类型相同。

6. Mapper文件中的namespace的值是接口的完全限定名称.

7. 在SqlMapConfig.xml文件中注册时,使用class属性=接口的完全限定名.

2. 开发步骤

1. 新建项目添加依赖

2. 新建属性文件db.properties

3. 新建环境配置文件(SqlMapConfig.xml)

1654048466750.jpg

注册实体类的别名,简化开发。

注意:在注册 mapper.xml文件时,使用class=”接口的完全限定名称”.

4. 新建可视化窗口

可以使用系统提供的jar,也可以使用自己的jar包

1654048482266.jpg

5. 新建实体类

6. 新建接口

1654048498349.jpg

7. 新建(接口的实现类)与接口同名的xml文件,完成数据库中的所有操作

1654048514120.jpg

1654048525327.jpg

8. 添加JUnit 的jar包

9. 新建测试类

1654048549288.jpg

总结:

UsersMapper.java和UsersMapper.xml文件必须在同一个目录下,且必须同名。

在UsersMapper.xml文件中添加namespace属性为接口的完全路径名。

10. 优化测试

1654048573495.jpg