两者的区别在于如果选择insert 那么所有的字段都会添加一遍即使没有值
-
<insert id="insert" parameterType="com.ego.pojo.TbContentCategory" > insert into tb_content_category (id, parent_id, name, status, sort_order, is_parent, created, updated) values (#{id,jdbcType=BIGINT}, #{parentId,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER}, #{sortOrder,jdbcType=INTEGER}, #{isParent,jdbcType=BIT}, #{created,jdbcType=TIMESTAMP}, #{updated,jdbcType=TIMESTAMP}) </insert>
inserSelective就会只给有值的字段赋值
-
<insert id="insertSelective" parameterType="com.ego.pojo.TbContentCategory" > insert into tb_content_category <trim prefix="(" suffix=")" suffixOverrides="," > <if test="id != null" > id, </if> <if test="parentId != null" > parent_id, </if> <if test="name != null" > name, </if> <if test="status != null" > status, </if> <if test="sortOrder != null" > sort_order, </if> <if test="isParent != null" > is_parent, </if> <if test="created != null" > created, </if> <if test="updated != null" > updated, </if> </trim> <trim prefix="values (" suffix=")" suffixOverrides="," > <if test="id != null" > #{id,jdbcType=BIGINT}, </if> <if test="parentId != null" > #{parentId,jdbcType=BIGINT}, </if> <if test="name != null" > #{name,jdbcType=VARCHAR}, </if> <if test="status != null" > #{status,jdbcType=INTEGER}, </if> <if test="sortOrder != null" > #{sortOrder,jdbcType=INTEGER}, </if> <if test="isParent != null" > #{isParent,jdbcType=BIT}, </if> <if test="created != null" > #{created,jdbcType=TIMESTAMP}, </if> <if test="updated != null" > #{updated,jdbcType=TIMESTAMP}, </if> </trim> </insert>
用一个例子说明一下
-
前提Goods商品表里面有三个字段:id,name,price
-
1.此时我只设置了一个字段名字:
-
Goods g = new Goods();
-
g.setName("手机");
-
insertSelective(g);
-
insertSelective执行对应的sql语句的时候,只插入对应的name字段;
-
(主键是自动添加的,默认插入为空)insert into tb_goods (id,name) value (null,"手机");
-
注意:此时是没有price什么事的
-
2、如果使用insert则是不论你设置多少个字段,统一都要添加一遍,不论你设置几个字段,即使是一个。
-
Goods g=new Goods();
-
g.setName("冰箱");
-
insert(g)
-
insert执行对应的sql语句的时候,统一都要添加一遍;
-
insert into tb_goods (id,name,price) value (null,"冰箱",null);
-
注意:price也在哦!!
转自:
https://blog.csdn.net/hello_word2/article/details/80560725