service层写法,继承ISerice,泛型为实体类对象
public interface UserService extends IService<User> {
}
impl层写法,继承ServiceImpl,实现service,泛型为Mapper对象+实体类对象
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
}
@Testpublic void testGetCount() {//查询数据库总记录数long count = userService.count();//SELECT COUNT( * ) AS total FROM userSystem.out.println("总记录数 = " + count);}@Testpublic void testInsertMore() {//批量添加(调mapper层方法,循环10次单独添加实现批量添加)List<User> list = new ArrayList<>();for (int i = 1; i <= 10; i ++) {User user = new User();user.setName("wfc" + i);user.setAge(20 + i);list.add(user);}boolean result = userService.saveBatch(list);System.out.println("result = " + result);}
@TableId注解可以指定主键
@TableId(value = "uid")private Long id;
Mybatis-Plus默认使用的主键算法是雪花算法,通过TableId的type属性可以更改算法策略
// 自增策略(需要同步修改表结构中的字段为自增才可以实现)@TableId(value = "id", type = IdType.AUTO)private Long id;
如果主动设置了主键,则使用自己设置的主键
@TableField指定属性对应的数据库字段名
@TableLogic表示逻辑删除字段,删除数据时变更字段值由0到1,并不会真正删除数据
select的时候也不会返回is_deleted = 1的数据
UPDATE user SET is_deleted=1 WHERE id IN ( ? , ? , ? ) AND is_deleted=0
// 配置文件中配置TableLogic
mybatis-plus:global-config:db-config:logic-delete-field: delFlag # 全局逻辑删除的实体字段名,也可实体类字段上加上@TableLogic注解logic-delete-value: 1 # 逻辑已删除值logic-not-delete-value: 0 # 逻辑未删除值