Я пытаюсь извлечь запись из базы данных, используя Spring Jdbctemplate. В JdbcTemplate я пытаюсь автоматизировать привязку данных, используя класс BeanPropertyRowMapper ... Тип имени столбца таблицы моей базы данных и имя поля объекта модели - типа те же ... Я реализовал этот API, но я не получаю ожидаемых результатов ... Для полей типа int & double я получаю значения 0 & 0.0, хотя это разные значения в базе данных ...
Пожалуйста, помогите решить эту проблему ... Мой код, как показано ниже,
@Override
public DiscountDetail getDiscountDetailById(int ID) throws ServiceException
{
String sql = "SELECT * FROM TBL_DISCOUNT where Id="+ID;
logger.info("sql :"+sql);
List<DiscountDetail> discounts = jdbcTemplate.query(sql, new BeanPropertyRowMapper(DiscountDetail.class));
if (discounts.size() == 1) {
logger.info("discount :"+discounts.get(0).toString());
return discounts.get(0);
}
return null;
}
DescountDetail.java
открытый класс DiscountDetail extends GenericEntity {
private int discountId,higherLimit,lowerLimit;
private double discountPercentage;
public int getDiscountId() {
return discountId;
}
public void setDiscountId(int discountId) {
this.discountId = discountId;
}
public int getHigherLimit() {
return higherLimit;
}
public void setHigherLimit(int higherLimit) {
this.higherLimit = higherLimit;
}
public int getLowerLimit() {
return lowerLimit;
}
public void setLowerLimit(int lowerLimit) {
this.lowerLimit = lowerLimit;
}
public double getDiscountPercentage() {
return discountPercentage;
}
public void setDiscountPercentage(double discountPercentage) {
this.discountPercentage = discountPercentage;
}
public String toString()
{
StringBuffer sb = new StringBuffer("");
sb.append("discountId: " + discountId);
sb.append(", higherLimit:" + higherLimit);
sb.append(", lowerLimit:" + lowerLimit);
sb.append(", discountPercentage:" + discountPercentage);
sb.append(super.toString());
return sb.toString();
}
}
--
-- Table structure for table `TBL_DISCOUNT_DETAIL`
--
CREATE TABLE `TBL_DISCOUNT_DETAIL` (
`Id` int(11) NOT NULL,
`DiscountId` int(11) NOT NULL,
`HigherLimit` int(11) NOT NULL,
`LowerLimit` int(11) NOT NULL,
`DiscountPercentage` double NOT NULL,
`CreatedOn` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`CreatedBy` varchar(100) NOT NULL,
`UpdatedOn` timestamp NULL DEFAULT NULL,
`UpdatedBy` varchar(100) DEFAULT NULL,
`VersionId` int(11) NOT NULL DEFAULT '1'
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Фактический объем производства:
2018-05-08 01:28:15 INFO InventoryDAO: 1052 - sql: SELECT * FROM TBL_DISCOUNT, где Id = 30
2018-05-08 01:28:15 ИНФОРМАЦИЯ InventoryDAO: 1056 - скидка: discountId: 0 , HigherLimit: 0 , lowerLimit: 0 , discountPercentage: 0.0 : ID [30]: Создано СИСТЕМОЙ 2018-05-07 19: 06: 42.0, Обновлено по Рахулу 2018-05-07 19: 06: 42.0: V [2]
Ожидаемый результат:
2018-05-08 01:28:15 INFO InventoryDAO: 1052 - sql: SELECT * FROM TBL_DISCOUNT, где Id = 30
2018-05-08 01:28:15 ИНФОРМАЦИЯ InventoryDAO: 1056 - скидка: discountId: 1 , выше Ограничение: 5 , ниже Ограничение: 20 , discountPercentage: 5.0 : ID [30]: Создано СИСТЕМОЙ на 2018-05-07 19: 06: 42.0, Обновлено на Rahul на 2018-05-07 19: 06: 42.0: V [2]