mybatis的的代理开发

2023年7月20日11:09:33

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);


    }
}

效果:

 

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

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

接口的方法:

映射文件:

测试代码:

效果:

 

 

 

 

 

  • 作者:Outlier_Lin
  • 原文链接:https://blog.csdn.net/security_linsho/article/details/124764513
    更新时间:2023年7月20日11:09:33 ,共 1179 字。