怎么用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");
}
{ 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;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯