实体类Employee:
1.当使用insert()时,执行方法会先进行属性的判断,根据实体类进行非空判断,只有非空的属性所对应的的字段才会在SQL语句中执行.
情况一: 在数据库表中字段没有要求非空的情况下:
控制台打印SQL:
SQL语句也只对应非空的属性:
表中插入字段:
情况二:
如果数据表结构设置非空,当插入空的字段时就直接回会报错:' xxx' doesn't have ......
2.insertAllColumn()
这个方法插入时,不管属性是否非空,属性所对应的的字段都会出现到SQL语句中。
控制台SQL语句:
数据库表中的数据:
这种插入的方法同insert()方法一样,当插入空字段但是数据表中的字段要求非空的情况下一样会报错.
总结:
虽然上述的两种方法执行的结果相同,但是当它们插入数据为空的情况下,数据表中的字段一定没有非空要求.显然两者在SQL执行流程上是不一样的。
insert():非空判断,执行非空字段.
insertAllClumn():全执行。