我想从数据库中输出域信息,第一个查询正在运行。但是在第二个代码中有一个错误。我如何解决此错误,就像所有内容均已正确编写一样。数据库已规范化,您需要在外键上查找数据。我使用Spring Boot和Whois服务器
库
@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;
}
尝试从以下位置更改:
DomainInfo domainInfo = template.queryForObject(
findDomainInfor,
new Object[]{domain},
new DomainRowMapper()
);
到:
DomainInfo domainInfo = template.queryForObject(
findDomainInfor,
new Object[]{domain},
new DomainRowMapperr()
);