【发布时间】:2014-05-26 16:11:42
【问题描述】:
我正在设计一款款待应用。并且在从数据库中获取多行时遇到了一些问题。我正在使用 Hibernate、Spring Web MVC、mySQL 和 JSP。我有层作为 Controller、Service、Dao、Model。我设计了一个搜索页面来根据他们的城市查看用户个人资料。例如,当我在搜索屏幕上的城市字段中写入“NewYork”时,它将显示居住在 NewYork 的用户配置文件列表并将 isHosting 值标记为 true。
这是我的 User 类:
public class User{
@Column(unique = true, nullable = false)
private String username;
...
private String city;
private String isHosting;
public boolean isHosting() {
return hosting;
}
public void setHosting(boolean hosting) {
this.hosting = hosting;
}
...
}
搜索类:
public class Search {
private String city;
private String sdate;
private String fdate;
private String numOfvisitor;
...
}
这是我的道课:
@Repository
public class SearchDao extends GenericDao<User> {
public User findByUserCity(final String city){
final Criteria c = createCriteria(User.class).add(Restrictions.eq("city", city));
return (User) c.uniqueResult();
}
}
服务类:
@Service
@Transactional
public class SearchService extends GenericService<User>{
@Autowired
public SearchService(SearchDao dao) {
super(dao);
}
...
public User findByUserCity(final String city) {
return ((SearchSurferDao) this.dao).findByUserCity(city);
}
}
和Controller类:
@RequestMapping(value = "/search", method = RequestMethod.GET)
public ModelAndView search(@ModelAttribute Search search) {
User user = SearchService.findByUserCity(search.getCity());
ModelAndView result = new ModelAndView("hello");
...
result.addObject("username", user.getUsername());
return result;
}
我知道我需要编写一个返回列表的数据库查询,并且需要将该列表发送到 JSP 文件,并且使用 foreach 标记我可以在屏幕上看到配置文件。但是如何编写数据库查询来从db中获取这样的列表,实际上将它放在哪个类中呢?我需要在 Controller 中做什么?我在哪里可以查看 isHosting 值?
【问题讨论】:
标签: java mysql spring hibernate jsp