Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
 Ошибка в коде, как можно исправить  [new]
skyboyy
Member

Откуда:
Сообщений: 25
Я написал программу где должна выводится информация о домене из базы данных. Так вот первый запрос работает, но со вторым запросом проблема.

Вот код

Repositiry
    @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")
        );
      }
      
      
    
      
      
     
    }



DomainInfo

 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;
    
    
    }


К сообщению приложен файл. Размер - 35Kb
2 окт 19, 08:23    [21984493]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в коде, как можно исправить  [new]
pavel_nv
Member

Откуда: NV -> SpB
Сообщений: 260
skyboyy,

у тебя маппер DomainRowMapper создает объекты класса TemporaryModel, а ты пытаешься присвоить его к DomainInfo
2 окт 19, 09:23    [21984533]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в коде, как можно исправить  [new]
skyboyy
Member

Откуда:
Сообщений: 25
pavel_nv,
я правильно же написал почему ругается на DomainRowMapperr
 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 DomainRowMapperr()
              
      );
      
      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")
    );
  }
  
  

  
  
 
}
2 окт 19, 09:36    [21984546]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в коде, как можно исправить  [new]
chpasha
Member

Откуда:
Сообщений: 8441
у тебя два DomainRowMapper - с одной "r" на конце и двумя - на скриншоте с ошибкой - с одной. Ногами за такое именование классов бить надо.
2 окт 19, 12:00    [21984705]     Ответить | Цитировать Сообщить модератору
Все форумы / Java Ответить