代码错误,如何正确编写

问题描述 投票:0回答:1

我想从数据库中输出域信息,第一个查询正在运行。但是在第二个代码中有一个错误。我如何解决此错误,就像所有内容均已正确编写一样。数据库已规范化,您需要在外键上查找数据。我使用Spring Boot和Whois服务器Error screenshot

@org.springframework.stereotype.Repository
public class Repository {

  private static Logger logger = Logger.getLogger(Repository.class.getName());

  @Autowired
  private JdbcTemplate template;

  private String findDomainInfo = "select * from r_domain where name = ?";

  public TemporaryModel findDomainInfo(String domain) {
    logger.log(Level.INFO, "searching by domain: " + domain);
    try {
      TemporaryModel temporaryModel = template.queryForObject(
          findDomainInfo,
          new Object[]{domain},
          new DomainRowMapper()
      );
      logger.log(Level.INFO, "found: " + temporaryModel);
      return temporaryModel;
    } catch (EmptyResultDataAccessException e) {
      logger.log(Level.INFO, "not found by domain: " + domain);

      return null;
    }
  }

  private String findDomainInfor = "select * from r_contact where name = ?";

  public DomainInfo findDomainInfor(String domain) {
      logger.log(Level.INFO, "searching by domain: " + domain);
    try {
      DomainInfo domainInfo = template.queryForObject(
          findDomainInfor,
          new Object[]{domain},
          new DomainRowMapper()
      );
      logger.log(Level.INFO, "found: " + domainInfo);
      return domainInfo;
    } catch (EmptyResultDataAccessException e) {
      logger.log(Level.INFO, "not found by domain: " + domain);

      return null;
    }
  }

}

class DomainRowMapper implements RowMapper<TemporaryModel> {

  @Override
  public TemporaryModel mapRow(ResultSet rs, int i) throws SQLException {
    return new TemporaryModel(
        rs.getLong("id"),
        rs.getLong("oid"),
        rs.getString("name"),
        rs.getLong("tld"),
        rs.getString("registrant"),
        rs.getString("c_admin"),
        rs.getString("c_tech"),
        rs.getString("c_bill"),
        rs.getDate("expired")
    );
  }

  class DomainRowMapperr implements RowMapper<DomainInfo> {

  @Override
  public DomainInfo mapRow(ResultSet rs, int i) throws SQLException {
    return new DomainInfo(
        rs.getString("domainName"),
        rs.getString("name"),
        rs.getString("organizationName"),
        rs.getString("streetAddress"),
        rs.getString("city"),
        rs.getString("state"),
        rs.getLong("PostalCode"),
        rs.getString("country"),
        rs.getDate("domainCreated"),
        rs.getDate("lastModified"),
        rs.getString("status"),
        rs.getString("registarCreated"),
        rs.getString("currentRegister")
    );
  }






}

域类

import java.time.LocalDateTime;
import lombok.AllArgsConstructor;
import lombok.Data;

@Data
@AllArgsConstructor

public class DomainInfo {

  String domainName;
  String name;
  String organizationName;
  String streetAddress;
  String city;
  String state;
  String postalCode;
  String country;

  LocalDateTime domainCreated;
  LocalDateTime lastModified;
  String status;
  String registarCreated;
  String currentRegistar;


}

enter image description here

java spring spring-boot java-ee whois
1个回答
0
投票

尝试从以下位置更改:

DomainInfo domainInfo = template.queryForObject(
          findDomainInfor,
          new Object[]{domain},
          new DomainRowMapper()
      );

到:

DomainInfo domainInfo = template.queryForObject(
          findDomainInfor,
          new Object[]{domain},
          new DomainRowMapperr()
      );
© www.soinside.com 2019 - 2024. All rights reserved.