大数据WEB阶段 使用mybatis是多值传递问题

使用mybatis是多值传递问题

一、 分析

  1. 在mybatis使用时 , 默认只允许在映射接口的方法中传递一个值 , 这时在映射文件的sql语句中可以用任意的名字取值

        实体User中 有name和age属性
        UserMapper.java映射接口中
        public void select(String aaa);
        UserMapper.xml映射文件中
        <select>
        select * from user user where #{xxx}
        </select>
    

二, 三种多值传递情况解决

  1. 传递实体类中的多个数据

    1. 如果需要传递的多个值都是同一实体中的属性 , 则可以把这些数据封装在实体中再传递

      实体User中 有name和age属性
      UserMapper.java映射接口中
      public void insert(User user);
      UserMapper.xml映射文件中
      <insert id="insert">
          insert into user valuse(#{name} , #{age})
      </insert> 
      
  2. 传递多个毫无关系的数据

    1. 当需要传递多个毫无关系的数据时, 可以使用map将数据进行封装
    2. 实际上mabytis传递数据时不管是多值还是单值 , 都是传递的一个map , 以键值对的形式存取值
  3. 直接传递多个值

    1. 如果需要传递的多个数据不属于一个实体 , 又觉得用map封装国语繁琐时, 可以使用参数的注解, 使用参数的注解之后, mybatis会自动将参数列表中的参数封装在map中

      UserMapper.java映射接口中
      public void insert(@param("name")String name , @Pparam("age")String age);
      UserMapper.xml映射文件中
      <insert id="insert">
              insert into user valuse(#{name} , #{age})
          </insert> 
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值