### 全字段插入
建议插入全部字段的时候使用这种方法最为简便
~~~
User user = new User();
user.setId(1000);
user.setUserName("测试人员2");
user.setAge(18);
user.setPhone("15115115111");
user.setRoleId(3);
user.setStatus(1);
Integer s = mysqlService.table(UserConfig.class).data(user).insert();
~~~
执行的sql为:
~~~
INSERT INTO tb_user (user_name,age,phone,role_id,status,create_time,update_time)VALUE ('测试人员2','18','15115115111','3','1',1536290767867,1536290767867)
~~~
你会很惊喜的发现 设置的 `id` 被自动忽略了,并且系统自动加上了`create_time` 和 `update_time`。
*****
### 排除字段插入(注:因静态属性特性,此方式弊端过大,切勿使用,待解决)
~~~
User user = new User();
user.setId(1000);
user.setUserName("测试人员2");
user.setAge(18);
user.setPhone("15115115111");
user.setRoleId(3);
user.setStatus(1);
UserConfig userConfig = new UserConfig();
userConfig.setStatus(null);//手动排除status字段
userConfig.setRoleId(null);//手动排除role_id字段
Integer f = mysqlService.table(userConfig).data(user).insert();
~~~
执行的sql为:
~~~
INSERT INTO tb_user (user_name,age,phone,create_time,update_time)VALUE ('测试人员2','18','15115115111',1536292513728,1536292513728)
~~~
将配置类的字段置为null,那么数据与字段无法产生对应关系,也就排除了该字段。
当然 如果你觉得全字段插入不方便,排除字段插入又麻烦,或者不希望系统自动处理id与时间字段,那么可以考虑使用以下方式
*****
### 指定字段插入
~~~
HashMap map = new HashMap();
map.put(UserConfig.getId(),30);
map.put(UserConfig.getUserName(),"map测试");
map.put(UserConfig.getCreateTime(),System.currentTimeMillis());
Integer d = mysqlService.name(UserConfig.getTb()).data(map).insert();
~~~
执行的sql为:
~~~
INSERT INTO tb_user (id,user_name,create_time) VALUE ('30','map测试','1536321015951',)
~~~
这种方式不会自动处理任何数据。
*****
### 获取插入的自增id
```
Long d = mysqlService.getLastId();
```
*****
### 插入数据并返回自增id(insertGetId方法可以完全代替insert方法)
```
Long id = mysqlService.table(UserConfig.class).data(user).insertGetId();
System.out.println("返回的id是:"+id);
```
> 请知晓约定:字段名称必须是id, 自增主键。