Java MyBatis之Mapper代理详解

 更新时间:2023年04月17日 10:29:45   作者:馆主阿牛  
这篇文章主要介绍了Java web中MyBatis的mapper代理,文中有详细的代码示例,具有一定的参考价值,感兴趣的小伙伴可以参考一下

Mapper代理

上一节MyBatis快速入们中依旧有硬编码的部分:

List<Member> members = sqlSession.selectList("test.selectAll");

这里test.selectAll就是硬编码,当我们xml文件中sql语句较多时,依旧不太方便,还没有提示功能!,因此本节就介绍Mapper代理,使用Mapper代理方式完成上一篇的入门案例!

步骤如下图:

对于第一步,请看下面目录结构:

我们可以直接将MemberMapper.xml放到java.com.aniu.mapper目录下,但这样不符合项目规范,xml配置文件我们一般都放resources目录,因此你需要在resources目录建一个同样的目录,这样Maven编译后的class文件Member.Mapper和MemberMapper.xml依旧在同一个目录:

需要注意的是,resources里面是目录,我们不能以包的com.aniu.mapper的方式建立多层文件夹,应该用com/aniu/mapper这种方式!

第二步:

命名空间设为Mapper接口的全限定名!

第三步:

需要注意的是要记得在配置文件中更改映射文件的路径!

当然,当sql映射文件多了之后,mybatis配置文件中要导入的sql映射文件也就多了,我们用这种Mapper代理的方式,可以用包扫描方式一次引入所有的sql映射文件!

public class MyBatisDemo2 {
    public static void main(String[] args) throws IOException {
        //1. 加载mybatis的核心配置文件,获取 SqlSessionFactory
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

        //2. 获取SqlSession对象,用它来执行sql
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //3. 执行sql (只有这块需要手写,其他步骤直接复制)
        // List<Member> members = sqlSession.selectList("test.selectAll"); // 命名空间+id,这就是命名空间的作用:便于区分
        MemberMapper memberMapper = sqlSession.getMapper(MemberMapper.class);
        List<Member> members = memberMapper.selectAll();
        System.out.println(members);

        //4. 释放资源
        sqlSession.close();
    }
}

到此这篇关于Java MyBatis之Mapper代理详解的文章就介绍到这了,更多相关Java Mapper代理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java程序代码与文本对比实用工具简介

    java程序代码与文本对比实用工具简介

    可以对两段文本进行对比,检测/比较两个文本有什么不同的差异,以便修改,常用于程序代码,就是不需要人工查看,尤其是大文件,有几百上千行的代码,这时候就建议使用比较工具了,不用浪费过多时间去寻找
    2021-09-09
  • Java SE求解汉诺塔问题的示例代码

    Java SE求解汉诺塔问题的示例代码

    汉诺塔问题是一个经典的问题。汉诺塔(Hanoi Tower),又称河内塔,源于印度一个古老传说。本文将用Java SE求解这一问题,感兴趣的可以学习一下
    2022-03-03
  • 设计模式系列之组合模式及其在JDK和MyBatis源码中的运用详解

    设计模式系列之组合模式及其在JDK和MyBatis源码中的运用详解

    这篇文章主要介绍了组合模式及其在JDK和MyBatis源码中的运用,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • MyBatis的SQL执行结果和客户端执行结果不一致问题排查

    MyBatis的SQL执行结果和客户端执行结果不一致问题排查

    本文主要介绍了MyBatis的SQL执行结果和客户端执行结果不一致问题排查,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • 解读springboot配置mybatis的sql执行超时时间(mysql)

    解读springboot配置mybatis的sql执行超时时间(mysql)

    这篇文章主要介绍了解读springboot配置mybatis的sql执行超时时间(mysql),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • Java中的gateway自定义过滤器详解

    Java中的gateway自定义过滤器详解

    这篇文章主要介绍了Java中的gateway自定义过滤器详解,过滤器是指gateway在路由过程中(A地址路由到B地址)生效进行过滤操作的,所有首先你得先配一个地址路由,本文提供了部分实现代码,需要的朋友可以参考下
    2023-11-11
  • Logback 使用TurboFilter实现日志级别等内容的动态修改操作

    Logback 使用TurboFilter实现日志级别等内容的动态修改操作

    这篇文章主要介绍了Logback 使用TurboFilter实现日志级别等内容的动态修改操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Java实现储存对象并按对象某属性排序的几种方法示例

    Java实现储存对象并按对象某属性排序的几种方法示例

    这篇文章主要介绍了Java实现储存对象并按对象某属性排序的几种方法,结合实例形式详细分析了Java储存对象并按对象某属性排序的具体实现方法与操作注意事项,需要的朋友可以参考下
    2020-05-05
  • Spring之spring-context-indexer依赖详解

    Spring之spring-context-indexer依赖详解

    这篇文章主要介绍了Spring之spring-context-indexer依赖详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • java发送短信的实现步骤

    java发送短信的实现步骤

    下面小编就为大家带来一篇java发送短信的实现步骤。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09

最新评论