mybatis的的代理开发

本文介绍了Mybatis的代理开发,通过Mapper接口和Mapper.xml文件的配合,无需手动创建实现类,Mybatis会生成接口的动态代理对象。遵循四大规范:namespace与接口全限定名一致,方法名与statement id相同,输入输出参数类型对应。文中提供了详细的代码示例,展示了无参和有参方法的使用方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mybatis的代理开发:(代理也相当于是通过调用方法来实现逻辑业务的)

Mapper接口开发方法只需要程序员编写Mapper接口(相当于Dao接口),由Mybatis框架根据接口定义创建接口的动态代理对象,代理对象的方法体同上边Dao接口实现类方法。

这种相比传统的方法我们不需要自己去创建这个接口的实现类了,直接通过mybatis来帮助我们来完成实现类。

Mapper接口开发需要遵循以下规范:

1、Mapper.xml文件中的namespace与mapper接口的全限定名相同

2、Mapper接口方法名和Mapper.xml中定义的每个statement的id相同

3、Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql的parameterType的类型相同

4、Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相同

下面是代码演示:

第一步:Mapper.xml文件中的namespace与mapper接口的全限定名相同

第二步:Mapper接口方法名和Mapper.xml中定义的每个statement的id相同

 

第三步:Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql的parameterType的类型相同(我们这里没有参数,两边都没有参数就相当于是相同的)

第四步:Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相同

 

测试代码:

public class ServiceDemo {

    public static void main(String[] args) throws IOException {


        InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");

        SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(resourceAsStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();

//通过mybatis来帮我们创建实现类
        UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
        
        
        List<User> all=userMapper.findAll();
        System.out.println(all);


    }
}

效果:

 

 我们相比较传统的方法是没有写这个接口的实现类的,这个代理是直接通过接口去调用映射文件里的代码。

上面我写的是一个没有参数的,现在我们写一个有参数的。

接口的方法:

映射文件:

测试代码:

效果:

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值