java - 我正在编写一个 Controller 来列出 Spring Boot Web Flux 中的员工 ID 和姓名。但也在列表 Controller 中获取 float 值

标签 java mysql jdbc controller resultset

我使用 JDBC 模板从数据库中检索详细信息,并且数据库中有一个浮点值为 0.0 的字段。我期望只有员工姓名和 ID 与此获取请求,但不确定为什么我也在 Controller 中获取此浮点值。

请帮我解决这个问题。谢谢!

 public Flux<Emplotee> getAllEmployeeIdsAndName() {

        List<Employee> allEmployee = jdbcTemplate.query(Queries.GET_ALL_EMPLOYEE_IDS_NAME, new RowMapper<Employee>() {
            @Override
            public Employee mapRow(ResultSet resultSet, int i) throws SQLException {
                Employee employee = new Employee();
                employee.setId(resultSet.getString("employee_id"));
                employee.setName(resultSet.getString("employee_name"));
                return employee;
            }
        });
        return Flux.fromIterable(allEmployee);
    }

使用的查询:

        private static final String GET_ALL_EMPLOYEE_IDS_NAME = "select  employee_id , employee_name from employee";

我想从列表中排除该分数值。

 {
        "score": 0.0,
        "employee_name": "John doe",
        "employee_id": "97e3-f566c43cac3e"
    }

公共(public)类员工{

   @JsonProperty("id")
   private String employee_id;
   private String employee_name;
   private float score;
   public String getId() {
      return id;
    }
   public void setEmployeeId(String employee_id) {  
      this.id = id;  
    }
   public String getName() { 
      return name; 
    } 
   public void setEmployeeName(String employeeName) { 
    this.name = name; 
    } 
   public float getScore() {
     return score; 
      }
   public void setScore(float score) { 
       this.score = score;
     }

}

最佳答案

您可以在Employee类中使用原始float。 float 的默认值为0.0f 使用 float 的包装类,即 FloatFloat 的默认值为 null。所以你会得到如下响应

   {
        "score": null,
        "employee_name": "John doe",
        "employee_id": "97e3-f566c43cac3e"
    }

注意: 如果你确实想忽略该属性,那么你可以使用@JsonIgnore注解。@JsonIgnore用于忽略序列化中使用的逻辑属性和反序列化。 @JsonIgnore 可用于 setter、getter 或 field。

public class Employee {
    @JsonProperty("id")
    private String id;
    private String name;

    @JsonIgnore
    private Float score;
    public String getId() {
        return id;
    }
    public void setEmployeeId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setEmployeeName(String name) {
        this.name = name;
    }
    public Float getScore() {
        return score;
    }
    public void setScore(Float score) {
        this.score = score;
    }
}

关于java - 我正在编写一个 Controller 来列出 Spring Boot Web Flux 中的员工 ID 和姓名。但也在列表 Controller 中获取 float 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59419893/

相关文章:

php - "Can' t 在使用 mysqli_num_rows() 时在写入上下文中使用函数返回值

java - 项目 Reactor 中的 Parallel Flux 与 Flux

java - 如何将 JPopup 移动到 Glasspane

mysql - 用户花费的平均时间(包括所有登录和注销)

java - 在 prepare 语句中传递数组参数 - 获取 "java.sql.SQLFeatureNotSupportedException"

java - com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException : Can't call rollback when autocommit=true

java - 我在 context.xml 中添加的标签何时被读取?

java - 在java中使用InputStream和OutputStream传输时图像不显示

Java - 迭代 IP 地址列表并以 IP 地址作为参数调用线程

php - 使用 PHP 计算年月存档中的内容