mybatis 参数为对象,取对象中list集合中某个元素中的属性

例子

vo对象:

@Data
public class TestVo {
	
	private String id;
	
	private List<Test> testList;
}
	

testList类

@Data
public class Test{
	
	private String likeName;
	
}

dao接口:

@Mapper
@Repository
public interface TestDao {

    int insertTest(TestVo vo);

}

mapper.xml

 <insert id="insertTest" parameterType="com.test.entity.vo.TestVo">
        insert into XXX
        (
        ID,
        LNAME
        )
        values
        (
        #{id},
        #{TestVo [0].likeName}
        )
    </insert>

测试类:


public static void main(String[] args){
	TestVo vo = new TestVo();
	List<Test> list = new ArrayList<>();
	Testh t= new Test();
	t.setLikeName("大番薯");
	list.add(t);
	vo.setTestList(list);
	vo.setId("abc123456");
	int i = TestDao.insertTest(vo);
	System.out.println(i);
}

在这里插入图片描述
插入成功!

Mybatis的foreach是一个非常常用的标签,用于在SQL语句进行循环操作。在Mybatis,我们经常会遇到需要批量插入或更新数据的情况,而foreach标签可以很方便地实现这一功能。 首先,我们可以使用foreach标签在SQL语句进行批量插入数据。通过指定collection属性,我们可以传入一个集合对象,可以是List、Array或Map。然后,在foreach标签内部,我们可以通过item属性指定集合的每个元素的别名,可以在SQL语句使用这个别名来引用每个元素属性值。在SQL语句,我们可以使用#{item.property}的方式来引用每个元素属性值。同时,我们还可以使用separator属性指定个元素之间的分隔符。 例如,我们可以这样使用foreach标签来实现批量插入数据的功能: ``` INSERT INTO table (a, b, c, d) VALUES <foreach collection="list" item="item" separator=","> (#{item.a}, #{item.b}, #{item.c}, #{item.d}) </foreach> ``` 上述代码,我们使用了一个List对象作为参数传入,将List的每个元素插入表的对应列。 除了批量插入数据,我们还可以使用foreach标签实现批量更新数据。在更新数据时,我们可以使用foreach标签的open和close属性指定更新语句的开始和结束符号。在SQL语句,我们可以使用IN函数来判断某个字段的值是否在一个集合,并使用foreach标签将集合元素传入IN函数。 例如,我们可以这样使用foreach标签来实现批量更新数据的功能: ``` UPDATE table SET b = '10' WHERE a IN <foreach collection="list" item="item" open="(" close=")" separator=","> #{item.a} </foreach> ``` 上述代码,我们使用了一个List对象作为参数传入,将List的每个元素作为待更新的字段值。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值