永发信息网

怎么用Hibernate写SQL里的in式的子查询

答案:2  悬赏:10  手机版
解决时间 2021-02-08 12:53
  • 提问者网友:做自己de王妃
  • 2021-02-08 04:42
怎么用Hibernate写SQL里的in式的子查询
最佳答案
  • 五星知识达人网友:酒者煙囻
  • 2021-02-08 06:22
我写个简单的例子,楼主可以参考下public int getLogin(String username,String password)
{ String sql="select * from user_table where username=? and password=?";
SQLQuery query=getSession().createSQLQuery(sql).addEntity(UserTable.class);
query.setString(0,username);
query.setString(1,password);
return Integer.parseInt(query.uniqueResult().toString());

}
public static void main(String[] args) {
new UserTableDAO().getLogin("zhang","yuan");
}
全部回答
  • 1楼网友:佘樂
  • 2021-02-08 07:17
第一个是从第几条开始,第二个是每页几条。 你看看你数据库里面的数据够不够分页,你这样只写两句就分页是不够的。 page = paginator.showpage(dao, hql, paramvalues, pagecurrent, pagesize); public static page showpage(persistentbasedao pdao, string hql, object[] paramvalues, int pagecurrent, int pagesize) { // 入口参数校验(无) if (pdao == null) { // log.debug("paginator.pdao.hql is empty"); } if (hql.equals("") || hql == null) { // log.debug("paginator.showpage.hql is empty"); } if (pdao == null) { // log.debug("paginator.showpage.pdao is empty"); } persistentbasedao dao = (persistentbasedao) pdao; // 如果当前页大于>总的页数,则让当前页等于总页数 int temppagecount =0; if (paramvalues == null) { temppagecount = dao.getpagecount(hql, (object[]) null, pagesize); } else { temppagecount= dao.getpagecount(hql, paramvalues, pagesize); } if (pagecurrent > temppagecount) { pagecurrent = temppagecount; } // 如果当前页大于<1,则让当前页等于1 if (pagecurrent < 1) { pagecurrent = 1; } // 调用dao.serarch()方法 if (paramvalues == null) { page = dao.search(hql, pagecurrent, pagesize); } else { page = dao.search(hql, paramvalues, pagecurrent, pagesize); } // 为page对象设置当前页的属性 page.setpagecurrent(pagecurrent); // 将page对象放在request对象中 return page; } @suppresswarnings("unchecked") public static page showpage(list list, int pagecurrent, int pagesize) { // 入口参数校验(无) if (list.isempty()) { // log.debug("paginator.showpage.list is empty"); } // 如果当前页大于>总的页数,则让当前页等于总页数 if (pagecurrent > page.getpagecount()) { pagecurrent = page.getpagecount(); } // 如果当前页大于<1,则让当前页等于1 if (pagecurrent < 1) { pagecurrent = 1; } list ls = new arraylist(); // 根据得到的list转化为page对象 if (list.size() % pagesize == 0) { page.setpagecount((list.size() / pagesize)); } else { page.setpagecount((list.size() / pagesize) + 1); } page.setpagecurrent(pagecurrent); page.setrecordcound(list.size()); int stag = (pagecurrent - 1) * pagesize; int etag = pagecurrent * pagesize; for (int i = stag; i < list.size() && i < etag; i++) { ls.add(list.get(i)); } page.setdatalist(ls); return page; }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯