Springboot实现启用禁用账号
Controller类
@PostMapping("/status/{status}")//status为路径参数
@ApiOperation("启用禁用员工账号")
public Result startOrStop(@PathVariable Integer status,Long id){
log.info("启用禁用员工账号:{},{}",status,id);
employeeService.startOrStop(status,id);
return Result.success();
}
Service类
/**
* 启用或禁用员工账号
* @param status
* @param id
*/
public void startOrStop(Integer status, Long id){
// Employee employee = new Employee();
// employee.setStatus(status);
// employee.setId(id);
//@Builder 是 Lombok 提供的一个注解,用于简化对象的构建过程
Employee employee = Employee.builder()
.status(status)
.id(id)
.build();
employeeMapper.update(employee);
}
Mapper.java类
/**
* 根据主键动态修改属性
* @param employee
*/
void update(Employee employee);
Mapper.xml实现动态修改
<update id="update" parameterType="Employee">
update employee
<set>
<if test="status != null">status = #{status},</if>
</set>
where id = #{id};
</update>
@Builder注解详解
@Builder
是 Lombok 提供的一个注解,用于简化对象的构建过程,尤其是在构建复杂对象时。通过使用 @Builder
,你可以避免编写繁琐的构造函数和大量的 setter 方法。下面是对 @Builder
的详细解析:
基本用法
-
引入 Lombok: 首先,确保你的项目中已经引入了 Lombok。如果是 Maven 项目,可以在
pom.xml
中添加:<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.24</version> <!-- 请使用最新版本 --> <scope>provided</scope> </dependency>
-
使用
@Builder
:import lombok.Builder; import lombok.ToString; @Builder @ToString public class User { private String name; private int age; private String email; }
-
构建对象:
使用
User.builder()
方法来构建对象:User user = User.builder() .name("Alice") .age(30) .email("alice@example.com") .build(); System.out.println(user);
特性
- 可读性: 使用
@Builder
可以使对象构建的代码更加清晰和易于阅读。 - 链式调用: 支持链式调用,使得属性设置更为简洁。
- 可选参数: 可以选择只设置需要的参数,减少构造函数的复杂性。
高级用法
-
构造器参数: 可以结合其他 Lombok 注解,例如
@AllArgsConstructor
和@NoArgsConstructor
,与@Builder
一起使用。 -
静态方法: 可以在类中定义静态方法来提供更复杂的构建逻辑。
-
自定义构建器: 允许自定义构建器类,例如:
@Builder(builderClassName = "CustomBuilder") public class User { private String name; private int age; }
-
嵌套 Builder: 可以用于嵌套的对象。例如,如果
User
有一个Address
类型的字段,你也可以为Address
类使用@Builder
并在User
中使用。
注意事项
- 不可变对象: 如果希望构建的对象是不可变的(即没有 setter),可以将所有字段设置为
final
。 - 泛型支持:
@Builder
也支持泛型类型。
示例
import lombok.Builder;
import lombok.ToString;
@Builder
@ToString
public class Address {
private String street;
private String city;
private String zipCode;
}
@Builder
@ToString
public class User {
private String name;
private int age;
private Address address;
}
构建对象示例:
Address address = Address.builder()
.street("123 Main St")
.city("Springfield")
.zipCode("12345")
.build();
User user = User.builder()
.name("Alice")
.age(30)
.address(address)
.build();
总结
@Builder
提供了一种优雅且灵活的方式来创建对象,特别适合于有多个参数的类。通过使用 Lombok,可以大幅减少样板代码,提高开发效率。
原文地址:https://blog.csdn.net/weixin_62818371/article/details/142815651
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!