Привет, ребята, я разрабатываю весеннее приложение и застрял на одном месте. Что я делаю, так это извлекаю данные из базы данных с помощью spring rowmapper. Проблема заключается в том, что при реализации класса класса rowmapper объект класса модели создает ровно столько же строк, сколько раз, поэтому, если в таблице 10 строк, создается 10 объектов класса модели. Я хочу создать только один объект этого класса модели, поэтому я ввел класс модели в класс dao, но в результате он возвращает данные последней строки только 10 раз.
Класс модели
public class Item {
private String ItemId;
private String ItemName;
private String price;
// getter & setter
}
класс ДАО
public class Itemdao {
private JdbcTemplate template;
private Item items;
public JdbcTemplate getTemplate() {
return template;
}
public void setTemplate(JdbcTemplate template) {
this.template = template;
}
public List<Item> getItem(){
return template.query("select * from item", new RowMapper<Item>(){
@Override
public Item mapRow(ResultSet rs, int rownum) throws SQLException
{
//Item item = new Item(); // Using this line I get 10 objects of model
items.setItemId(rs.getString(1));
items.setItemName(rs.getString(2));
items.setPrice(rs.getString(3));
return items;
}});
}
public Item getItems() {
return items;
}
public void setItems(Item items) {
this.items = items;
}
}
Основной класс
public class test {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("spconfig.xml");
Itemdao dItemdao = (Itemdao)context.getBean("item");
List<Item> list = dItemdao.getItem();
for(Item i:list)
System.out.println(i);
}
}
Конфигурация пружины
<beans>
<bean id="ds" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@localhost:1521:xe" />
<property name="username" value="sandhya" />
<property name="password" value="2611798" />
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="ds"/>
</bean>
<bean id="items" class="com.shopping.Item.Model.Item"/>
<bean id="item" class="com.shopping.Item.Model.Itemdao">
<property name="template" ref="jdbcTemplate"/>
<property name="items" ref="items"/>
</bean>
</beans>