如何在Hibernate,Spring,JSP中从db中获取多行?

我是主教

我正在设计一个款待应用程序。并且在从数据库中获取多行时遇到了一些问题。我正在使用HibernateSpring Web MVCmySQLJSP我有控制器服务Dao模型层我设计了一个搜索页面,以根据用户所在的城市查看他们的个人资料。例如,当我在搜索屏幕上的城市字段中写入“ 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);
}

}

控制器类:

@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值?

JB Nizet
Criteria c = createCriteria(User.class).add(Restrictions.eq("city", city));
return (User) c.uniqueResult();

上面的代码确实创建了一个查询,该查询查找具有给定城市的用户。但它假设给定城市中只有一个用户,事实可能并非如此。方法应该是

public List<User> findByUserCity(final String city) {
    Criteria c = createCriteria(User.class).add(Restrictions.eq("city", city));
    return c.list();
}

另外,Criteria API导致难以阅读的代码,并且当您必须基于多个搜索条件动态组成查询时,该标准非常适合。对于这样的静态查询,您应该使用HQL:

public List<User> findByUserCity(String city) {
    return session.createQuery("select u from User u where u.city = :city")
                  .setString("city", city)
                  .list();
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Hibernate:如何在Hibernate中删除多行?

来自分类Dev

如何在Mnesia中获取多行

来自分类Dev

如何使用spring和hibernate从DB检索数据并在jsp中打印?

来自分类Dev

如何在jsp中获取数组值

来自分类Dev

如何在JSP中获取java路径?

来自分类Dev

如何在JSP中获取主体信息?

来自分类Dev

如何在Hibernate中获取<map>

来自分类Dev

Spring MVC:如何在处理程序方法中获取jsp文件的名称

来自分类Dev

如何在Excel中获取多行排序/过滤标头

来自分类Dev

如何在多行CSV中循环以获取2个变量?

来自分类Dev

Hibernate-如何在JSP表中显示对象列表?

来自分类Dev

如何在Hibernate中从数据库中获取数据

来自分类Dev

如何在我的操作中从JSP获取更新的列表值?

来自分类Dev

如何在JSP中获取表单名称值

来自分类Dev

如何在Java JSP中获取数组列表大小?

来自分类Dev

如何在jsp中获取上载文件的准确路径?

来自分类Dev

如何在jsp中获取单选按钮列表的值

来自分类Dev

如何在JSP中获取表单名称值

来自分类Dev

如何在JSP中获取文件上传的完整路径?

来自分类Dev

如何在JSP标签中获取HttpServletRequest / Response?

来自分类Dev

如何在jsp中获取Javascript函数的值?

来自分类Dev

如何在jsp中获取邮件传递报告

来自分类Dev

如何在战争中获取当前的jsp文件路径?

来自分类Dev

如何在jsp页面中获取mysql查询结果?

来自分类Dev

如何在 JSP 中从 Model 获取对象到 AngularJS 变量?

来自分类Dev

如何在jsp中获取表的行索引

来自分类Dev

如何在ServletContextListener中获取Spring ApplicationContext?

来自分类Dev

如何在jsp中调用Spring MVC控制器

来自分类Dev

如何在Spring MVC中禁用对JSP URL的处理?

Related 相关文章

热门标签

归档