081108 GWT分页显示数据

2024-04-14 15:38
文章标签 数据 显示 分页 gwt 081108

本文主要是介绍081108 GWT分页显示数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

基于上一篇日志的实例的基础上修改:

CRUDService.java:

package client;

import com.google.gwt.user.client.rpc.ServiceDefTarget;
import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.core.client.GWT;

public interface CRUDService extends RemoteService {
     Student[] getStudent(String PageNum)     ;

    String getPagenum();

    public static class App {
        private static CRUDServiceAsync ourInstance = null;

        public static synchronized CRUDServiceAsync getInstance() {
            if (ourInstance == null) {
                ourInstance = (CRUDServiceAsync) GWT.create(CRUDService.class);
                ((ServiceDefTarget) ourInstance).setServiceEntryPoint(GWT.getModuleBaseURL() + "CRUD/CRUDService");
            }
            return ourInstance;
        }
    }
}


CRUDServiceImpl.java:

package server;

import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import client.CRUDService;
import client.Student;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Hibernate;
import org.hibernate.Query;
import org.hibernate.cfg.Configuration;
import java.util.List;
import java.util.Iterator;

public class CRUDServiceImpl extends RemoteServiceServlet  implements CRUDService {
    private static final SessionFactory sessionFactory;
    String Pagenum = "1";
    static {
            try {
                // Create the SessionFactory from hibernate.cfg.xml
                sessionFactory = new Configuration().configure().buildSessionFactory();
            } catch (Throwable ex) {
                // Make sure you log the exception, as it might be swallowed
                System.err.println("Initial SessionFactory creation failed." + ex);
                throw new ExceptionInInitializerError(ex);
            }
        }

        public static SessionFactory getSessionFactory() {
            return sessionFactory;
        }

    public List ListStudent(String PageNum){
       Session session =  getSessionFactory().getCurrentSession() ;
        session.beginTransaction();
         Query query = session.createSQLQuery("select * from t_student")
        .addScalar("id", Hibernate.LONG)
        .addScalar("name", Hibernate.STRING)
        .addScalar("email", Hibernate.STRING);
        int PageSize = 10;

        try{
            if (Integer.parseInt(PageNum)!=0 | PageNum!=null ){
            query.setFirstResult((Integer.parseInt(PageNum)-1) * PageSize);
            query.setMaxResults(PageSize);
            }else{
            query.setFirstResult(0);
            query.setMaxResults(PageSize);
            }
        }catch(Exception e){
            query.setFirstResult(0);
            query.setMaxResults(PageSize);
        }
        List ls = query.list();
        session.getTransaction().commit();
        return ls;
    }

    public int CountStudent(){
       Session session =  getSessionFactory().getCurrentSession() ;
        session.beginTransaction();
         List ls = session.createSQLQuery("select count(*) from t_student").list();
        session.getTransaction().commit();
        return Integer.parseInt(ls.iterator().next().toString());
    }

        public Student[] getStudent(String PageNum){
             this.setPagenum(PageNum);
             Student[] student = new Student[this.CountStudent()];
            int i = 0;
          for(Iterator it = this.ListStudent(PageNum).iterator();it.hasNext();i++) {
             Object[] ob = (Object[] )it.next();
                student[i]=new Student(ob[0].toString(),ob[1].toString(),ob[2].toString());
              
          }

             return student;
          }

     public void setPagenum(String pagenum){
         this.Pagenum = pagenum;
     }

    public String getPagenum() {
        return Pagenum;  //To change body of implemented methods use File | Settings | File Templates.
    }

}


CRUDServiceAsync.java :

package client;

import com.google.gwt.user.client.rpc.AsyncCallback;

public interface CRUDServiceAsync {

    void getStudent(String PageNum, AsyncCallback async);

    void getPagenum(AsyncCallback async);
}

CRUD.java :

package client;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.*;
import com.google.gwt.user.client.rpc.AsyncCallback;

public class CRUD implements EntryPoint {
    private CRUDServiceAsync  crudServiceAsync ;
    VerticalPanel main = new VerticalPanel();
    FlexTable lb = new FlexTable();
    HorizontalPanel hp = new HorizontalPanel();
    Button nextpage = new Button("nextpage");
    Button prepage = new Button("prepage");
    private String pagenum = "1";

    public void setPagenum(String pagenum){
        this.pagenum=pagenum;
    }
    public String getPagenum(){
        return this.pagenum;
    }
    int  prepagenum = 1;
    int  nextpagenum =1;

    public void onModuleLoad() {
        main.add(lb);
        main.add(hp);
        hp.add(prepage);
        hp.add(nextpage);
        RootPanel.get().add(main);
        showstudentlist("1");

       prepage.addClickListener(new ClickListener(){
       public void onClick (Widget sender){
       prepagenum = Integer.parseInt(getPagenum())-1;
       showstudentlist(String.valueOf(prepagenum));
       }
     });

     nextpage.addClickListener(new ClickListener(){
      public void onClick (Widget sender){
       nextpagenum = Integer.parseInt(getPagenum())+1 ;
     showstudentlist(String.valueOf(nextpagenum));
      }
      });
 
    }

     private void  showstudentlist(String pagenum) {
         CRUDService.App.getInstance().getStudent(pagenum,new AsyncCallback(){
                  public void onFailure(Throwable caught) {
                  }
                  public void onSuccess(Object result) {
                    Student s[] = ( Student[])result ;
                      for (int i=0;i<=s.length;i++){
                          lb.setText(i,0,s[i].id);
                          lb.setText(i,1,s[i].name);
                          lb.setText(i,2,s[i].email);
                      }
                  }
              });

        CRUDService.App.getInstance().getPagenum(new AsyncCallback(){
            public void onFailure(Throwable caught) {}
            public void onSuccess(Object result) {
                   setPagenum((String)result);
            }
        });

    }

}


这篇关于081108 GWT分页显示数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/903375

相关文章

Java中注解与元数据示例详解

《Java中注解与元数据示例详解》Java注解和元数据是编程中重要的概念,用于描述程序元素的属性和用途,:本文主要介绍Java中注解与元数据的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参... 目录一、引言二、元数据的概念2.1 定义2.2 作用三、Java 注解的基础3.1 注解的定义3.2 内

将sqlserver数据迁移到mysql的详细步骤记录

《将sqlserver数据迁移到mysql的详细步骤记录》:本文主要介绍将SQLServer数据迁移到MySQL的步骤,包括导出数据、转换数据格式和导入数据,通过示例和工具说明,帮助大家顺利完成... 目录前言一、导出SQL Server 数据二、转换数据格式为mysql兼容格式三、导入数据到MySQL数据

C++中使用vector存储并遍历数据的基本步骤

《C++中使用vector存储并遍历数据的基本步骤》C++标准模板库(STL)提供了多种容器类型,包括顺序容器、关联容器、无序关联容器和容器适配器,每种容器都有其特定的用途和特性,:本文主要介绍C... 目录(1)容器及简要描述‌php顺序容器‌‌关联容器‌‌无序关联容器‌(基于哈希表):‌容器适配器‌:(

C#提取PDF表单数据的实现流程

《C#提取PDF表单数据的实现流程》PDF表单是一种常见的数据收集工具,广泛应用于调查问卷、业务合同等场景,凭借出色的跨平台兼容性和标准化特点,PDF表单在各行各业中得到了广泛应用,本文将探讨如何使用... 目录引言使用工具C# 提取多个PDF表单域的数据C# 提取特定PDF表单域的数据引言PDF表单是一

一文详解Python中数据清洗与处理的常用方法

《一文详解Python中数据清洗与处理的常用方法》在数据处理与分析过程中,缺失值、重复值、异常值等问题是常见的挑战,本文总结了多种数据清洗与处理方法,文中的示例代码简洁易懂,有需要的小伙伴可以参考下... 目录缺失值处理重复值处理异常值处理数据类型转换文本清洗数据分组统计数据分箱数据标准化在数据处理与分析过

大数据小内存排序问题如何巧妙解决

《大数据小内存排序问题如何巧妙解决》文章介绍了大数据小内存排序的三种方法:数据库排序、分治法和位图法,数据库排序简单但速度慢,对设备要求高;分治法高效但实现复杂;位图法可读性差,但存储空间受限... 目录三种方法:方法概要数据库排序(http://www.chinasem.cn对数据库设备要求较高)分治法(常

如何设置vim永久显示行号

《如何设置vim永久显示行号》在Linux环境下,vim默认不显示行号,这在程序编译出错时定位错误语句非常不便,通过修改vim配置文件vimrc,可以在每次打开vim时永久显示行号... 目录设置vim永久显示行号1.临时显示行号2.永www.chinasem.cn久显示行号总结设置vim永久显示行号在li

Python将大量遥感数据的值缩放指定倍数的方法(推荐)

《Python将大量遥感数据的值缩放指定倍数的方法(推荐)》本文介绍基于Python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处理,并将所得处理后数据保存为新的遥感影像... 本文介绍基于python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处

使用MongoDB进行数据存储的操作流程

《使用MongoDB进行数据存储的操作流程》在现代应用开发中,数据存储是一个至关重要的部分,随着数据量的增大和复杂性的增加,传统的关系型数据库有时难以应对高并发和大数据量的处理需求,MongoDB作为... 目录什么是MongoDB?MongoDB的优势使用MongoDB进行数据存储1. 安装MongoDB

Python MySQL如何通过Binlog获取变更记录恢复数据

《PythonMySQL如何通过Binlog获取变更记录恢复数据》本文介绍了如何使用Python和pymysqlreplication库通过MySQL的二进制日志(Binlog)获取数据库的变更记录... 目录python mysql通过Binlog获取变更记录恢复数据1.安装pymysqlreplicat