用hibernate+servlet+jsp开发程序的过程中,怎样实现分也显示数据
答案:3 悬赏:40 手机版
解决时间 2021-01-04 08:59
- 提问者网友:孤凫
- 2021-01-04 04:04
用hibernate+servlet+jsp开发程序的过程中,怎样实现分也显示数据
最佳答案
- 五星知识达人网友:詩光轨車
- 2021-01-04 05:26
public void getByPagination(final Pagination<T> pagination) {
pagination.setRecondSum(this.getCounts(pagination.getCondition()));
pagination.setResults(
(List<T>) this.getHibernateTemplate().execute(new HibernateCallback<T>() {
public T doInHibernate(Session arg0) throws HibernateException,
SQLException {
Criteria c = arg0.createCriteria(type);
if(pagination.getCondition() instanceof ICondition){
ICondition condition = (ICondition)pagination.getCondition();
condition.addAestrictions(c);
}
if(pagination.getOrderFields().size()>0){
//排序的实体类属性名称
HashMap<String,Boolean> orderFields = pagination.getOrderFields();
@SuppressWarnings("rawtypes")
Iterator it = orderFields.entrySet().iterator();
while(it.hasNext()){
@SuppressWarnings("rawtypes")
Map.Entry entry = (Entry) it.next();
String key = (String) entry.getKey();
boolean value = (Boolean) entry.getValue();
c.addOrder(value?Order.asc(key):Order.desc(key));
}
}
//从第几条记录开始
c.setFirstResult((pagination.getPageSize()*(pagination.getPageIndex()-1)));
c.setMaxResults(pagination.getPageSize());
//分页
return (T) c.list();
}
})
);
}
pagination.setRecondSum(this.getCounts(pagination.getCondition()));
pagination.setResults(
(List<T>) this.getHibernateTemplate().execute(new HibernateCallback<T>() {
public T doInHibernate(Session arg0) throws HibernateException,
SQLException {
Criteria c = arg0.createCriteria(type);
if(pagination.getCondition() instanceof ICondition){
ICondition condition = (ICondition)pagination.getCondition();
condition.addAestrictions(c);
}
if(pagination.getOrderFields().size()>0){
//排序的实体类属性名称
HashMap<String,Boolean> orderFields = pagination.getOrderFields();
@SuppressWarnings("rawtypes")
Iterator it = orderFields.entrySet().iterator();
while(it.hasNext()){
@SuppressWarnings("rawtypes")
Map.Entry entry = (Entry) it.next();
String key = (String) entry.getKey();
boolean value = (Boolean) entry.getValue();
c.addOrder(value?Order.asc(key):Order.desc(key));
}
}
//从第几条记录开始
c.setFirstResult((pagination.getPageSize()*(pagination.getPageIndex()-1)));
c.setMaxResults(pagination.getPageSize());
//分页
return (T) c.list();
}
})
);
}
全部回答
- 1楼网友:雪起风沙痕
- 2021-01-04 07:13
jsp 就是 java web开发的前台,
也就是视图层的东西,
用于网页的显示作用。
运用语言是 html 语言和少量的 java 语言做脚本。
servlet ,
恩,jsp 为什么能运行呢?
java 编译器怎么会识别 html 语言?
servlet 其实就是 jsp 的底层,
它应用的是 java 语言。
是它编写的后台,
使得 jsp 代码可以用了。
恩,lz可以去看看开源文件,
看看设计师们是怎么做到的。
还有,jsp是表示层,
后台控制怎么办呢?
必须把前台和后台代码联系起来吧。
恩,由于 servlet 的特性,
所以它还可以起到这个作用。
ejb(enterprise javabean) 和 hibernate,
这两个属于框架内容,
ejb能够为我们提供中间件服务,
开发人员只需要关注具体的业务逻辑,
中间件服务由ejb容器负责;
hibernate 主要负责数据访问的工作,
也就是连接数据库。
这样做可以保持代码的统一性。
- 2楼网友:不如潦草
- 2021-01-04 06:13
hibernate有实现分页的函数
Query q=session.createQuery(hql);
q.setInteger(0, userId);
q.setFirstResult((cp - 1) * ls);
q.setMaxResults(ls);
List all=q.list();
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯