返回顶部
首页 > 资讯 > 精选 >MyBatis如何实现注册及获取Mapper
  • 776
分享到

MyBatis如何实现注册及获取Mapper

2023-06-29 17:06:49 776人浏览 独家记忆
摘要

这篇文章主要为大家展示了“mybatis如何实现注册及获取Mapper”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MyBatis如何实现注册及获取Mapper”这篇文章吧。一、搭建环境1.1

这篇文章主要为大家展示了“mybatis如何实现注册及获取Mapper”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MyBatis如何实现注册及获取Mapper”这篇文章吧。

一、搭建环境

1.1 pom.xml

 <dependency>            <groupId>mysql</groupId>            <artifactId>Mysql-connector-java</artifactId>        </dependency>        <dependency>            <groupId>com.baomidou</groupId>            <artifactId>mybatis-plus-boot-starter</artifactId>        </dependency>

1.2 BlogMapper.java

public interface BlogMapper {    List<Blog> selectBlog(String id);}

1.3 BlogMapper.xml

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"        "Http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="mybatis.source.study.BlogMapper">    <select id="selectBlog" resultType="mybatis.source.study.Blog">    select * from t_blog where id= #{id}  </select></mapper>

BlogMapper.xml放在resource目录下与BlogMapper.java包路径相同的路径下

1.4 MyBatisDemo.java

public class MyBatisDemo {    public static void main(String[] args) {    //创建数据源        DataSource dataSource = getDataSource();        TransactionFactory transactionFactory = new JdbcTransactionFactory();        //创建sql运行环境        Environment environment = new Environment("development", transactionFactory, dataSource);        //创建mybatis的所有配置        Configuration configuration = new Configuration(environment);        //注册mapper        configuration.addMapper(BlogMapper.class);//        configuration.addInterceptor(new PaginationInterceptor());//根据配置创建sql会话工厂        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);        SqlSession sqlSession = sqlSessionFactory.openSession();        BlogMapper mapper = sqlSession.getMapper(BlogMapper.class);        System.out.println(mapper.selectBlog("001"));    }    private static DataSource getDataSource() {        DruidDataSource druidDataSource = new DruidDataSource();        druidDataSource.setUrl("jdbc:mysql://localhost:3306/demo?characterEncoding=utf-8&serverTimezone=Asia/Shanghai");        druidDataSource.setUsername("root");        druidDataSource.setPassword("root");        return druidDataSource;    }

二、addMapper详细分析

2.1 MapperReGIStry

MyBatis如何实现注册及获取Mapper

这块就是判断这个mapper.xml解析过没有,解析是在 parser.parse();中做的,来看

MyBatis如何实现注册及获取Mapper

loadXmlResource();根据xml解析每个mapper接口的方法,将得到的MapperStatement放进了configuration,然后记录该xml的namespace表示已经处理过。具体调用链:

loadXmlResource()&ndash;>xmlParser.parse()&ndash;>configurationElement(parser.evalnode("/mapper"))&ndash;> buildStatementFromContext(context.evalNodes(“select|insert|update|delete”))&ndash;> buildStatementFromContext(list, null)&ndash;>statementParser.parseStatementNode()&ndash;>builderAssistant.addMappedStatement&ndash;>configuration.addMappedStatement(statement);

MyBatis如何实现注册及获取Mapper

parseStatement(method);根据注解解析每个mapper接口的方法,因此xml和注解可以同时使用。但是同一个方法两者同时使用会报错

MyBatis如何实现注册及获取Mapper

2.2 MapperProxyFactory

MyBatis如何实现注册及获取Mapper

放入knownMappers的是MapperProxyFactory,它是一个Mapper代理的工厂,这个工厂提供newInstance方法,产生一个代理类(也就是BlogMapper接口的代理实现类),调用BlogMapper所有的方法将在MapperProxy的invoke方法中执行

三、getMapper详细分析

getMapper会调用MapperRegistry的getMapper从knownMappers中获取代理工厂,再调用newInstance方法产生一个代理类MapperProxy。

MyBatis如何实现注册及获取Mapper

3.1 MapperProxy

在执行mapper.selectBlog(“001”)时,就会调用MapperProxy的invoke方法

MyBatis如何实现注册及获取Mapper

根据method(selectBlog)生成对应的MapperMethod,并将MapperMethod放入本地缓存
mapperMethod.execute(sqlSession, args);执行真正的sql逻辑。

3.2 MapperMethod

MyBatis如何实现注册及获取Mapper

MapperMethod的构造方法,根据接口信息、方法信息、配置信息得到SqlCommand(sql名称、类型)、method(方法签名),方便后续执行命令、处理结果集等。

以上是“MyBatis如何实现注册及获取Mapper”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: MyBatis如何实现注册及获取Mapper

本文链接: https://lsjlt.com/news/325973.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MyBatis如何实现注册及获取Mapper
    这篇文章主要为大家展示了“MyBatis如何实现注册及获取Mapper”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MyBatis如何实现注册及获取Mapper”这篇文章吧。一、搭建环境1.1 ...
    99+
    2023-06-29
  • MyBatis实现注册及获取Mapper
    目录一、搭建环境1.1 pom.xml1.2 BlogMapper.java1.3 BlogMapper.xml1.4 MyBatisDemo.java二、addMapper详细分析...
    99+
    2024-04-02
  • Mybatis如何使用@Mapper和@MapperScan注解实现映射关系
    目录使用@Mapper和@MapperScan注解实现映射关系Mybatis-@MapperScan和mybatis:scan分析<mybatis:scan>Mapper...
    99+
    2024-04-02
  • Mapper动态代理如何在Mybatis中实现
    Mapper动态代理如何在Mybatis中实现?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、实现原理     &nbs...
    99+
    2023-05-31
    mybatis mapper pp
  • uniapp实现注册发送获取验证码功能
    目录说明配置mockjs使用封装axios,创建请求api根目录下创建utils根目录创建api文件夹main.js注册全局api前端调用templatescript效果总结说明 验...
    99+
    2022-11-13
    uniapp 验证码 uniapp获取短信验证码 uniapp短信验证
  • vbs中如何获取Am注册路径信息
    本篇文章给大家分享的是有关vbs中如何获取Am注册路径信息,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Dim ...
    99+
    2024-04-02
  • JS+PHP如何实现用户注册及登录
    小编给大家分享一下JS+PHP如何实现用户注册及登录,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!<!DOCTYPE ht...
    99+
    2024-04-02
  • navicat注册码如何获得
    navicat注册码获取方式如下:官方途径:购买正版产品或咨询官方客服。非官方途径:查找第三方平台(可能存在法律风险)或使用注册机(非法)。建议购买正版软件以获取合法注册码,避免法律风险...
    99+
    2024-06-13
    navicat
  • Spring MVC+mybatis实现注册登录功能
    本文实例为大家分享了Spring MVC mybatis实现注册登录功能的具体代码,供大家参考,具体内容如下前期准备: 如下图所示,准备好所需要的包 新建工程,导入所需要的包,在web.xml中配置好所需要的,如下<...
    99+
    2023-05-31
    spring mvc mybatis
  • vue中如何实现登录注册及token验证
    这篇文章主要介绍了vue中如何实现登录注册及token验证,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体实现代码如下:1. 利用rout...
    99+
    2024-04-02
  • VBS如何读取注册表
    小编给大家分享一下VBS如何读取注册表,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!第一种 通过wshshell对象的regread复制代码 代码如下:RegVa...
    99+
    2023-06-08
  • php如何实现手机注册
    本文操作环境:windows10系统、php 7、thindpad t480电脑。我们在使用手机号注册时通常需要发送短信验证码,在进行修改密码等敏感操作时也需要手机号发送短信验证码。那么在实际项目中如果要发送短信验证码该如何做呢?通常是需要...
    99+
    2020-12-15
    php 手机
  • php如何实现注册功能
    这篇文章主要介绍php如何实现注册功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php注册功能的实现方法:首先在已有的数据库里创建user表;然后创建HTML注册表单以及PHP注册程序;最后创建登录表单和登录程序...
    99+
    2023-06-14
  • ajax php该如何实现注册
    ajax php该如何实现注册,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。ajax php实现注册的方法:1、创建login.html注册登录页面;2、通过j...
    99+
    2023-06-26
  • Redis如何实现登录注册
    今天小编给大家分享一下Redis如何实现登录注册的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1. 引言在传统的项目中,用户...
    99+
    2023-07-02
  • php如何实现用户注册
    这篇文章主要讲解了“php如何实现用户注册”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php如何实现用户注册”吧!创建注册表单首先,我们需要在前端创建一个表单,让用户填写必要的信息。通常注...
    99+
    2023-07-05
  • springboot如何实现指定mybatis中mapper文件扫描路径
    本篇内容主要讲解“springboot如何实现指定mybatis中mapper文件扫描路径”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“springboot如何实现指定mybatis中mappe...
    99+
    2023-07-02
  • mybatis实现获取入参是List和Map的取值
    目录前言1.项目结构 2.pom文件配置3.其他的业务代码第一种采用#符的取值法第二种方式采用$符的取值法4.总结前言 最近在工作中需要使用到mybatis,需要实现某个功...
    99+
    2024-04-02
  • vbs如何实现注册表操作
    小编给大家分享一下vbs如何实现注册表操作,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!读注册表的关键词和值: 可以通过把关键词的完整路径传递给wshshell对...
    99+
    2023-06-08
  • springboot+VUE如何实现登录注册
    这篇文章主要介绍springboot+VUE如何实现登录注册,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、springBoot创建springBoot项目分为三个包,分别为controller,service, ...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作