广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Mybatis省略@Param注解原理分析
  • 593
分享到

Mybatis省略@Param注解原理分析

2024-04-02 19:04:59 593人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录1、新建mybatis的Demo项目2、添加-parameters参数后的执行结果如下3、SpringBoot项目为什么不用另外配置-parameters参数呢环境配置: jdk

环境配置:

起始原因:

编写mybatis的Demo程序时,mapper传递多参数时,需要添加@param注解指定传递参数名称,而在springboot整合的mybatis则可以省略@param注解。于是乎,开始探究原因。

涉及到的知识点:

jdk8新增了-parameters参数,开启此参数可以将编译后的class文件保留源码中的参数名称,而不是(arg0,arg1)。保留参数名称方便判断反射参数。此处便运用在Mybatis中mapper接口传参中。

1、新建mybatis的Demo项目

编写UserMapper.java,这里省略@Param注解。

public interface UserMapper {
    User getUser(String username, String passWord);
}

编写测试

public class MyBatisTest {
    @Test
    public void testCrud() throws ioException {
        InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
        sqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
        SqlSession sqlSession = sqlSessionFactory.openSession(true);
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        User admin = mapper.getUser("admin", "123456");
        System.out.println(admin);
    }
}

Debug路线如下: 直接上图

此时参数封装的结构为:

然后就不出意外的报错了

那么如何解决呢?

2、添加-parameters参数后的执行结果如下

在pom文件添加插件并参加参数,参数的意义: 让编译器在编译代码时,保留参数的实际名称。

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.Maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <compilerArgs>
                        <arg>-parameters</arg>
                    </compilerArgs>
                </configuration>
            </plugin>
        </plugins>
    </build>

添加插件和参数后, 可以在idea查看编译器添加参数的情况。

此时Mybatis封装参数效果如下:

那么执行结果如何呢?

没有问题,只是数据库没有匹配的数据。

那么为什么springboot项目我们没有配置过这类的参数,但是也可以省略@param注解呢?

3、springboot项目为什么不用另外配置-parameters参数呢

新建一个springboot项目(2.0.3版本)

此时就看到了熟悉的关键字。为了确认是否这个参数,于是乎将这一段注释掉。

想法得到验证。

springboot1.5.1版本没有添加该参数。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: Mybatis省略@Param注解原理分析

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Mybatis省略@Param注解原理分析
    目录1、新建mybatis的Demo项目2、添加-parameters参数后的执行结果如下3、springboot项目为什么不用另外配置-parameters参数呢环境配置: jdk...
    99+
    2022-11-13
  • Mybatis-Plus注入SQL原理分析
    目录前言案例测试原理解析前言 MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 那么 MyBat...
    99+
    2022-11-13
  • Mybatis防止sql注入原理分析
    目录Mybatis防止sql注入原理底层实现原理Mybatis解决sql注入问题小结一下Mybatis防止sql注入原理 SQL 注入是一种代码注入技术,用于攻击数据驱动的应用,恶意...
    99+
    2022-11-12
  • Mybatis-Plus的应用场景描述及注入SQL原理分析
    目录一、背景1.1 传统Mybatis的弊端1.2 MyBatis-Plus的定位1.3 特性1.4 原理解析二、准备工作2.1 基础接口BaseMapper2.2 创建实体类对象2...
    99+
    2022-11-12
  • Java@Autowired注解底层原理详细分析
    目录1.概念2.注入数据的注解3.@Autowired注解是如何实现的1.概念 @Autowired 是 Spring 提供的注解,默认的注入方式为 byType (按类型自动注入)...
    99+
    2022-11-13
    Java @Autowired注解 Java @Autowired Java @Autowired原理
  • javaSE基础java自定义注解原理分析
    目录1. 从注释的角度来理解注解2.提出问题3.编写注解4.通过Java反射获取方法的注解信息结束注解在JavaSE中算是比较高级的一种用法了,为什么要学习注解,我想大概有以下几个原...
    99+
    2022-11-12
  • Web安全解析Boolean注入攻击原理的示例分析
    这篇文章主要为大家展示了“Web安全解析Boolean注入攻击原理的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Web安全解析Boolean注入攻击原理的示例分析”这篇文章吧。1. B...
    99+
    2023-06-25
  • Web网络安全漏洞分析SQL注入原理详解
    目录一、SQL注入的基础1.1 介绍SQL注入1.2 注入的原理1.3 与MySQL注入相关的知识MySQL查询语句limit的用法需要记住的几个函数注释符内联注释一、SQL注入的基...
    99+
    2022-11-12
  • Web网络安全分析Base64注入攻击原理详解
    目录Base64注入攻击Base64注入代码分析Base64注入攻击 Base64攻击的测试地址:http://127.0.0.1/sqli/base64.php?id=MQ...
    99+
    2022-11-12
  • Web网络安全分析XFF注入攻击原理详解
    目录XFF注入XFF注入代码分析XFF注入 XFF注入攻击的测试地址:http://127.0.0.1/sqli/xff.php。 X-Forwarded-for简称XFF头,它代表...
    99+
    2022-11-12
  • Web网络安全分析Union注入攻击原理详解
    目录1、Union注入攻击2、Union注入代码分析1、Union注入攻击 Union注入攻击的测试地址:http://127.0.0.1/s...
    99+
    2022-11-12
  • Web网络安全分析二次注入攻击原理详解
    目录二次注入攻击二次注入代码分析二次注入攻击 二次注入攻击的测试地址:http://127.0.0.1/sqli/double1.php?username=test 和 ht...
    99+
    2022-11-12
  • Java注解机制之Spring自动装配实现原理的示例分析
    小编给大家分享一下Java注解机制之Spring自动装配实现原理的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! Java中使用注解的情况主要在SpringMVC(Spring Boot等),注解实际上相...
    99+
    2023-05-31
    java spring
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作