首页 > 其他分享 >Mybatis入参与返回值类型

Mybatis入参与返回值类型

时间:2023-07-23 19:22:55浏览次数:28  
标签:insert String into pojo 入参 类型 Mybatis 返回值 public

mapper接口入参 入参设置方式: 1.单独的参数与对象均直接按默认属性名匹配 (得有对应get、set方法) 2.@param 注解,注解名称代表参数对象 3.

package com.Dao;


import com.person.People;
import org.apache.ibatis.annotations.Param;

import java.util.Map;

//不同参数配置
public interface Pojo2Parament {
    //自定义对象
    public int firstInsert(People people);
    //Map集合
    public int secondInsert(Map<String,Object> map);
    //基本数据类型
    public int thirdInsert(String name,String sex);
    //注解设置参数
    public int AnonationInsert(@Param("one") String a, @Param("two") String b);
}

mapper.xml参数设置与匹配规则

规则简述

parameterType:入参类型,自定义参数一定要写具体类路径

取值

  • sql中参数匹配用#{pojo.properties} (用到预编译,取出的值视为普通字符串)
  • 如果是${pojo.properties} 会参与sql编译,无预编译,可能造成sql注入问题
  • #{param1}, #{param2}或者#{arg0},#{arg1}
获取入参的内容都是通过get方法进行获取 插入数据时要指定jdbcType类型:mybatis自动将java类型转为jdbcType,但是如果数据为null,不指定的话就不知道转为什么类型,就会报错    

入参为对象

 <insert id="firstInsert" parameterType="com.person.People"><!--参数为自定义类型的需要声明参数类型-->

        <!--
        参数是People对象
        name,sex都是People中的属性名,不能自己随便定义
         直接接收传入的People对象,按对应get+此处参数名(不区分大小写)作为调用的接口中的get方法的方法名来获取值并按名称将值放入对应的预编译中
        默认增长的主键如不指定,可以直接写上列名,不用从People出调用get方法来获取值-->
        
        insert into pojo
        values (id, #{name}, #{sex})
    </insert>

 

 

入参为基本数据类型

 
    <!--    参数是基本数据类型-->
    <insert id="thirdInsert">
        <!--
            预编译参数设置为
            #{param1}, #{param2}或者#{arg0},#{arg1},
                适用于多个参数(基本数据类型,这种可以直接用作预编译参数的)
            arg从0开始,param从1开始-->
            <!--参数列表多参,不按顺序,而是按名称对应的话,使用@param注解-->
        insert into pojo values (id, #{param1}, #{param2})
    </insert>

 

入参为Map

机制为getKey()

 <insert id="secondInsert">
        <!--
           参数name,sex都是map中的key名,机制是取得map中设置的键值对的值
          如果没对上,则getKey(key)返回来的是null,存入预编译处
          参数类型为Map,不用写paramentType=""这个声明
        -->
        
        insert into pojo
        values (id, #{name}, #{sex})
    </insert>

 

入参已用@param注解指定名称

   <insert id="AnonationInsert">
    <!--参数类型为注解配置,也不需要声明参数类型-->
    <!--必须是注解中设置的参数名称-->
        insert into pojo values (id,#{one},#{two})
    </insert>

 

 

 

 

 

 

 

       

标签:insert,String,into,pojo,入参,类型,Mybatis,返回值,public
From: https://www.cnblogs.com/deity-night/p/17575750.html

相关文章

  • Mybatis的嵌套查询-column多条件
    Mybatis的嵌套查询一、结构创建三个表userroleuser_role简单展示一下嵌套查询的例子,其实就是Collection放到ResultMap,下一层把上一层的查询结果作为条件传入。--master.`user`definitionCREATETABLE`user`(`id`bigintNOTNULLAUTO_INCREMENT,`age`intDEF......
  • C语言数据类型和变量
    一.数据类型介绍1.概念所谓类型,就是相似的数据所拥有的共同特征,编译器只有知道了数据的类型,才能知道如何操作数据。2.数据类型分类**内置类型:字符,整型,浮点型,布尔类型自定义类型:数组,结构体-struct,枚举-enum,联合体-union**(自己创造类型)a.字符类型char[signed]char-有符号的charunsi......
  • 提取MyBatis中XML语法构造SQL的功能
    提取MyBatis中XML语法构造SQL的功能MyBatis能够使用*.xml来编辑XML语法格式的SQL语句,常用的xml标签有<where>,<if>,<foreach>等。偶然遇到一个场景,只想使用MyBatis的解析XML语法生成SQL的功能,而不需其他功能,于是在@Select打断点,跟踪代码执行,后续发现和XML有关的类主要在包路......
  • java 判断泛型T的类型
    Java判断泛型T的类型1.概述在Java中,泛型是一种强大的类型安全机制,它可以使我们写出更加灵活和可重用的代码。然而,在某些情况下,我们可能需要判断一个泛型T的具体类型。本文将向你介绍一种方法来判断泛型T的类型。2.实现流程下面是实现判断泛型T的类型的流程:步......
  • MyBatis 常用工具类
    SQL类MyBatis提供了一个SQL工具类,使用这个工具类,我们可以很方便在Java代码动态构建SQL语句StringnewSql=newSQL()({SELECT("P.ID,P.USERNAME,P.PASSWORD,P.FULLNAME");SELECT("P.LASTNAME,P.CREATEDON,P.UPDATEDON");FROM("PERSONP");FR......
  • SpringBoot项目集成Mybatis Generator代码生成器
    添加依赖在项目的pom.xml文件中添加以下依赖<!--mybatisgenerator自动生成代码插件--><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId>......
  • MyBatisPlus公共字段自动填充
    公共字段自动填充公共字段新增员工,修改、编辑员工信息时,都需要设置创建时间,修改时间等操作,这些操作过于重复、繁琐,为了有更快捷高效的,MyBatisPlus提供了公共字段自动填充功能,当我们执行insert和update操作时才执行MyBatisPLus公共字段自动填充就是在插入或者修改操作时,为指定字......
  • MyBatis-Plus文件上传方法
    网站的文件上传方法本地存储上传//本地存储方式MultipartFile接受文件@PostMapping("/save")publicResultsave(Stringusername,Integerage,MultipartFileimage)throwsIOException{log.info("文件:{},{},{}",username,age,image);......
  • java实体时间戳用什么类型接
    实现Java实体时间戳的类型选择对于Java开发者来说,处理时间戳是非常常见的任务。在Java中,我们可以使用不同的数据类型来表示时间戳,但是选择合适的类型并了解其使用方法至关重要。本文将向刚入行的小白开发者介绍Java实体时间戳的类型选择,并提供相应的代码示例和解释。整体流程下......
  • 【易语言】自定义数据类型排序
    .版本2.子程序自定义类型数组排序.参数排序组,特殊成员,参考数组.局部变量交换,逻辑型.局部变量未比数据,整数型.局部变量交换变量,特殊成员.局部变量N,整数型交换=真未比数据=取数组成员数(排序组).判断循环首(交换=真)交换=假.变量循......