一、本文简介
主要对比了MyBatis生成的Mapper类中的insert方法和insertSelective方法的区别
二、insert和insertSelective的区别
insert和insertSelective是MyBatis中用于插入数据到数据库的两种方法,它们之间的主要区别在于对null值的处理方式。
-
insert:这个方法会将实体类中的所有属性都映射到SQL语句中,进行插入操作。这意味着,如果实体类的某个属性为null,那么在数据库中对应的字段也会被设置为NULL。简而言之,insert方法会插入所有字段,不论其值是否为null。
-
insertSelective:与insert方法不同,insertSelective只会插入那些非null的字段值到数据库。对于实体类中为null的属性,insertSelective方法不会将其映射到SQL语句中,数据库中对应的字段将保持默认值。这种方法更加灵活,可以避免将不必要的null值插入到数据库中。
总结来说,insert方法适用于需要插入所有字段,包括null值的场景;而insertSelective方法适用于只想插入非null字段,保留数据库中字段的默认值的场景。选择哪种方法取决于具体的业务需求和数据库设计。
标签:insert,数据库,插入,insertSelective,MyBatis,null,方法 From: https://blog.csdn.net/Jeffreyhh/article/details/139363298