使用逆向工程生成的代码做一个添加时通常都会给出两个答案,如题目想要增加一条数据会让你选择insert或者insertSelective
两者的区别在于如果选择insert 那么所有的字段都会添加一遍即使没有值
1 2 3 4 5 6 7 8 |
|
但是如果使用inserSelective就会只给有值的字段赋值(会对传进来的值做非空判断)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
|
</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也在哦!!
作者:风泊月
来源:CSDN
原文:https://blog.csdn.net/hello_word2/article/details/80560725
版权声明:本文为博主原创文章,转载请附上博文链接!