mybatisplus.save
时间: 2023-11-08 09:06:06 浏览: 123
mybatisplus.save 是 MyBatis-Plus 框架中的一个方法,用于向数据库中插入一条记录。它的具体实现是通过调用 MyBatis 的 insert 方法实现的,但是相比于原生的 insert 方法,mybatisplus.save 方法提供了更加便捷的使用方式,可以自动填充实体类中的一些字段,如创建时间、更新时间等。
使用 mybatisplus.save 方法需要先创建一个实体类对象,并设置好需要插入的字段值,然后调用 save 方法即可。例如:
```
User user = new User();
user.setName("张三");
user.setAge(20);
user.setEmail("zhangsan@example.com");
user.setCreateTime(new Date());
user.setUpdateTime(new Date());
mybatisplus.save(user);
```
这样就可以向数据库中插入一条名为“张三”,年龄为 20,邮箱为“zhangsan@example.com”的用户记录。
相关问题
com.baomidou.mybatisplus.extension.service.impl的save方法的id是如何生成的
在使用 MyBatis-Plus 框架时,`com.baomidou.mybatisplus.extension.service.impl` 包下的 `ServiceImpl` 类中提供的 `save` 方法用于将实体对象保存到数据库中。`save` 方法内部会根据实体类中配置的主键策略来生成 id。
MyBatis-Plus 提供了多种主键生成策略,包括:
1. 自动增长 ID(默认策略):如果实体类的主键字段类型是 Integer 或 Long,并且被标记为 `@TableId` 注解,那么 MyBatis-Plus 会默认使用数据库的自动增长功能来生成 id。
2. 全局唯一 ID(如 UUID、Snowflake 等):可以通过配置全局的 ID 生成器来生成全局唯一的 id。
3. 自定义 ID 生成器:可以通过实现 `IdentifierGenerator` 接口来自定义 id 的生成逻辑。
在大多数情况下,默认使用的是自动增长 ID 策略,即数据库层面会在插入新记录时自动为 id 字段赋予一个唯一的递增值。
如果你使用的是自动增长策略,那么在数据库层面,通常会在创建表时为 id 字段设置自增属性,如下所示:
```sql
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
```
在这个例子中,当你插入一条新记录且没有指定 `id` 值时,数据库会自动为 `id` 字段赋予下一个自增的数值。
com.baomidou.mybatisplus.extension.service.impl这个包里有什么方法
com.baomidou.mybatisplus.extension.service.impl 这个包中包含以下方法:
- ServiceImpl() 构造方法
- boolean save(T entity) 保存一个实体,null的属性也会保存,不会使用数据库默认值
- boolean saveOrUpdate(T entity) 根据传入实体的ID,如果数据库存在ID,则更新记录;否则,插入一条新记录
- boolean removeById(Serializable id) 根据主键字段进行删除,方法参数必须包含完整的主键属性
- boolean removeByMap(Map<String, Object> columnMap) 根据 map 对象条件,删除记录
- boolean remove(Wrapper<T> wrapper) 根据 wrapper 对象条件,删除记录
- boolean updateById(T entity) 根据主键更新实体全部字段,null值会被更新
- boolean update(T entity, Wrapper<T> updateWrapper) 根据updateWrapper条件更新实体record包含的全部属性,null值会被更新
- T getById(Serializable id) 根据主键字段进行查询,方法参数必须包含完整的主键属性,查询条件使用等号
- Collection<T> listByIds(Collection<? extends Serializable> idList) 根据主键字段集合,批量查询
- List<T> listByMap(Map<String, Object> columnMap) 根据 map 对象条件,查询一条记录
- T getOne(Wrapper<T> queryWrapper, boolean throwEx) 根据 Wrapper 条件,查询总记录数
- List<T> list(Wrapper<T> queryWrapper) 根据 Wrapper 条件,查询全部
阅读全文