MyBatis代理开发

代理开发

在这里插入图片描述

以下四点分别解释上述步骤

1.定义Mapper接口

定义SQL文件同名的接口,置于java目录下,并且定义一个Mapper包。

在这里插入图片描述
Maven项目要求Java文件与配置文件分开,所以就不置于同一目录下,置于resources目录下。

在这里插入图片描述

此处,我们需要代理成功的,是要置于一个目录之下。

注意:
我们的项目在编译之后是会生成一个classes的目录,目录下存放着包和配置文件,我们可以在resources目录下创建的包要和上面创建的Mapper包有一样的路径。

注意:
在创建该包名时,不要用.,例如com.xxx.xxx,
因为idea会认为这是整个的包名,而并不会指向Mapper目录,正确的创建方式为com/xxx/xxx。

这样,Mapper的映射文件和接口文件就在一个目录下了。

2.设置SQL文件的namespace属性

<mapper namespace="com.XXXX.mapper.UserMapper">

3.在Mapper接口中定义方法

  1. 方法名就是SQL映射文件中sql语句的id
  2. 并保持参数类型和返回值类型一致
List<User> selectAll();

返回值类型是user类型,要保持参数类型与返回值类型一致
<select id="selectAll" resultType="user">

用List进行接收,返回user集合对象

映射文件位置在config文件中替换一下,替换为UserMapper.xml的path。

<mapper resource="com/itheima/mapper/UserMapper.xml"/>

4.编码

		//3. 执行sql
        //List<User> users = sqlSession.selectList("test.selectAll");
        //3.1 获取UserMapper接口的代理对象
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
        List<User> users = userMapper.selectAll();
  1. 此处不再调用sqlSession.selectList()方法,而是获取UserMapper接口的代理对象。
  2. 并且参数为UserMapper的类型。
  3. 最后调用接口中selectAll()方法,这个selectAll()就对应着SQL语句的id,从xml就可以找到该id,从而就有了SQL语句。

tip:

如果Mapper接口名称和SQL映射文件名称相同,并在同一目录下,则可以使用包扫描的方式简化SQL映射文件的加载。

<package name="com.xxxx.mapper"/>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值