`
jayxigua
  • 浏览: 21760 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类

java代码笔记2010-06-24:java 实现一个分页操作(JDBC+GUI->AWT) 实例

阅读更多

一,完成了 数据内部的 分页操作
二,实现GUI 窗口。
1,按钮:首页 下一页 上一页 尾页
2,textarea 分页显示。每页显示5个数据。

注意点:
1,三个类。
2,我的mysql user=root password=root,
配置文件的路径:inputFile = new FileInputStream("src/test20100624_pages/p2.properties");
要根据实际情况进行修改。
大家可以根据自己的情况修改。

知识点:
一,配置文件:
Properties p2 = new Properties();
p2.load(inputFile);
String value = p2.getProperty(key);
conn = DriverManager.getConnection(url,p2);
二,ResultSet 的各个方法:
String sql2 = "select * from student order by sid";
rs = comm.executeQuery(sql2);
return rs;
rs.last();
totalsize = rs.getRow();
rs.absolute(i);


——————————linkDB.java————————————————————————
package test20100624_pages;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Properties;

public class linkDB {

    Properties p2 = new Properties();
    ArrayList<student> arrayS = null;
    final int per_pages_size=5;
    void connect_properties() {
        FileInputStream inputFile;
        try {
            inputFile = new FileInputStream(
                    "src/test20100624_pages/p2.properties");


            try {
                p2.load(inputFile);
//                System.out.println("测试properties:"+p2);
//                测试properties:{max=1000, user=root, password=root, min=999}
//                测试properties:{max=1000, user=root, password=root, min=999}
            } catch (IOException e) {
                //
                e.printStackTrace();
            }
        } catch (FileNotFoundException e2) {
            //
            e2.printStackTrace();
        }
    }

    public String getValue(String key) {
        if (p2.containsKey(key)) {
            String value = p2.getProperty(key);// 得到某一属性的值
            return value;
        } else
            return "没有该属性";
    }

    public Connection getConnection2() {
        String url = "jdbc:mysql://localhost:3306/test_jdbc?useUnicode=true&characterEncoding=gbk";
        this.connect_properties();
        String user = this.getValue("user");
        String DbPassword = this.getValue("password");

        Connection conn = null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            //conn = DriverManager.getConnection(url, user, DbPassword);
            conn = DriverManager.getConnection(url,p2);
        } catch (SQLException e) {
            System.out.println("SQL 异常");
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            System.out.println("数据库没有找到");
            e.printStackTrace();
        }
        return conn;
    }

    public ResultSet getAllStudent_info() {
        Connection conn = this.getConnection2();
        Statement comm = null;
        ResultSet rs = null;
        try {
            comm = conn.createStatement();

            String sql2 = "select * from student order by sid";
            // select * from student order by sid;
            rs = comm.executeQuery(sql2);
            return rs;

        } catch (SQLException e) {
            e.printStackTrace();
        }
        return rs;
    }

    public int getPagesTotalSize() {
        ResultSet rs = this.getAllStudent_info();
        int totalsize = 0;
        try {
            rs.last();
            // System.out.println("ResultSet的总大小大小" + rs.getRow());
            totalsize = rs.getRow();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return totalsize;
    }
    public int getPagesNum() {
        int totalsize = (Integer)this.getPagesTotalSize()/per_pages_size;   
        return (totalsize+1);
    }

    public ArrayList<student> get_per_Page(int per_pages_num) {
        ResultSet rs = this.getAllStudent_info();
        ArrayList<student> arrayS = new ArrayList();
        int totalsize = this.getPagesTotalSize();
        int sid = 0;
        String sname = null;
        String spassword = null;
        if (per_pages_size * (per_pages_num - 1) < totalsize) {
            int start = per_pages_size * (per_pages_num - 1) + 1;
            int end = 0;
            if (per_pages_size * per_pages_num > totalsize) {
                end = totalsize;
            } else {
                end = per_pages_size * per_pages_num;
            }
            for (int i = start; i <= end; i++) {
                try {
                    rs.absolute(i);
                    sid = rs.getInt(1);
                    sname = rs.getString(2);
                    spassword = rs.getString(3);
                    student s = new student(sid, sname, spassword);
                    arrayS.add(s);
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        } else {
            System.out.println("超出范围");
        }
        return arrayS;
    }

    public void test_per_page(int id) {
        ArrayList<student> arrayS = this.get_per_Page(id);

        for (Iterator i = arrayS.iterator(); i.hasNext();) {
            student s = (student) i.next();
            s.showStudentInfo();
        }
    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        // 测试:数据库连接
        linkDB sdl = new linkDB();
        // l.getAllStudent_info();
        // 测试:数据库表 大小
        System.out.println("ResultSet的总大小大小" + sdl.getPagesTotalSize());
        // 测试:显示 第一页和第三页的信息,还有最后一页,加上超出范围的情况。
        // 一共是18个信息,每页5个。最多是4页。
        System.out.println("第一页");
        sdl.test_per_page(1);
        System.out.println("第三页");
        sdl.test_per_page(3);
        System.out.println("最后一页");
        sdl.test_per_page(4);
        System.out.println("超出范围情况");
        sdl.test_per_page(5);
        System.out.println("异常情况");
        sdl.test_per_page(-1);
    }

}
——————mainPages.java————————————————
package test20100624_pages;

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Panel;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.ArrayList;
import java.util.Iterator;

public class mainPages extends Frame {
    private int currentlyPage = 1;
    private Panel center, bottom;
    private Button previously, next, first, tail;
    private TextArea ta;
    private linkDB ldb = new linkDB();
    ArrayList<student> arrayS = null;

    public mainPages() {

        this.previously = new Button("上一页");
        this.next = new Button("下一页");
        this.first = new Button("首页");
        this.tail = new Button("尾页");
        this.ta = new TextArea();
        ta.setRows(5);
        ta.setBounds(0, 0, 40, 20);
        this.initialization();

        this.center = new Panel(new GridLayout(1, 1));
        this.bottom = new Panel(new GridLayout(1, 4));

        center.add(ta);

        bottom.add(previously);
        bottom.add(next);
        bottom.add(first);
        bottom.add(tail);

        MyListener ml = new MyListener();
        this.previously.addActionListener(ml);
        this.next.addActionListener(ml);
        this.first.addActionListener(ml);
        this.tail.addActionListener(ml);

        // this.add(center,BorderLayout.NORTH);不知是何原因?这样的话,显示不bottom。可能和BorderLayout有关系。
        this.add(center, BorderLayout.CENTER);
        this.add(bottom, BorderLayout.SOUTH);

        this.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                setVisible(false);
                dispose();
                System.exit(0);
            }
        });

        this.setBounds(200, 200, 350, 180);
        // this.setResizable(false);
        this.setVisible(true);

    }

    void initialization() {
        arrayS = ldb.get_per_Page(currentlyPage);
        for (Iterator i = arrayS.iterator(); i.hasNext();) {
            student s = (student) i.next();
            ta.append(s.getStudentInfo());
        }
    }

    public void next() {
        currentlyPage++;
        arrayS = ldb.get_per_Page(currentlyPage);
        for (Iterator i = arrayS.iterator(); i.hasNext();) {
            student s = (student) i.next();
            ta.append(s.getStudentInfo());
        }
    }

    public void previous() {
        currentlyPage--;
        arrayS = ldb.get_per_Page(currentlyPage);
        for (Iterator i = arrayS.iterator(); i.hasNext();) {
            student s = (student) i.next();
            ta.append(s.getStudentInfo());
        }
    }

    class MyListener implements ActionListener {

        public void actionPerformed(ActionEvent e) {
            ta.setText("");
            if (e.getSource() == previously) {
                if (currentlyPage >= 2) {
                    currentlyPage--;
                } else {
                    ta.append("当前为第一页!\n");
                }
                arrayS = ldb.get_per_Page(currentlyPage);

                for (Iterator i = arrayS.iterator(); i.hasNext();) {
                    student s = (student) i.next();
                    ta.append(s.getStudentInfo());
                }
            } else if (e.getSource() == next) {
                ta.setText("");
                int pagesNum = ldb.getPagesNum();
                if (currentlyPage < pagesNum) {
                    currentlyPage++;
                } else {
                    ta.append("当前为最后一页!\n");
                }
                arrayS = ldb.get_per_Page(currentlyPage);

                for (Iterator i = arrayS.iterator(); i.hasNext();) {
                    student s = (student) i.next();
                    ta.append(s.getStudentInfo());
                }
            } else if (e.getSource() == first) {
                ta.setText("");
                currentlyPage = 1;
                arrayS = ldb.get_per_Page(currentlyPage);
                for (Iterator i = arrayS.iterator(); i.hasNext();) {
                    student s = (student) i.next();
                    ta.append(s.getStudentInfo());
                }
            } else if (e.getSource() == tail) {
                ta.setText("");
                currentlyPage = ldb.getPagesNum();
                arrayS = ldb.get_per_Page(currentlyPage);

                for (Iterator i = arrayS.iterator(); i.hasNext();) {
                    student s = (student) i.next();
                    ta.append(s.getStudentInfo());
                }
            }
        }
    }

    public static void main(String[] args) {
        mainPages mp = new mainPages();
    }

}

—————————student.java—————————————————————————

package test20100624_pages;

public class student {
    private int sid;
    private String sname;
    private String spassword;

    public student(int sid, String sname, String spassword) {
        this.sid = sid;
        this.sname = sname;
        this.spassword = spassword;
    }

    public void setSid(int sid) {
        this.sid = sid;
    }

    public void setSname(String sname) {
        this.sname = sname;
    }

    public void setSpassword(String spassword) {
        this.spassword = spassword;
    }

    public int getSid() {
        return this.sid;
    }

    public String getSname() {
        return this.sname;
    }

    public String getSpassword() {
        return this.spassword;
    }

    public void showStudentInfo() {
        System.out.println("学号" + this.getSid() + "姓名" + this.getSname()
                + "密码:" + this.getSpassword());
    }

    public String getStudentInfo() {
        return "学号" + this.getSid() + "姓名" + this.getSname() + "密码:"
                + this.getSpassword()+"\n";
    }

}

————————————————————————————————
/*SQL 语句,导入就行了。
drop database test_jdbc;
create database test_jdbc;
use test_jdbc;


create table student
(sid int not null,
sname varchar(50),
spassword varchar(20),
primary key(sid)
);

insert into student values('1','科比','24');
insert into student values('2','加内特','5');
insert into student values('3','艾弗森','23');

insert into student values('11','德罗巴','24');
insert into student values('12','罗尼','5');
insert into student values('13','克里斯蒂亚诺 诺那尔多','23');
insert into student values('21','梅西','24');
insert into student values('22','比利亚','5');
insert into student values('23','哈维','23');
insert into student values('31','麦孔','24');
insert into student values('32','埃弗拉','5');
insert into student values('33','费尔南德斯','23');
insert into student values('41','维迪奇','24');
insert into student values('42','卡西利亚斯','5');

insert into student values('43','詹姆斯','23');
insert into student values('51','韦德','24');
insert into student values('52','姚明','5');
insert into student values('53','邓肯','23');


insert into course values('1','计算机网络','40');
insert into course values('2','软件工程','40');
insert into course values('3','操作系统','40');
insert into course values('4','毛概','40');
insert into course values('5','日语','40');
insert into course values('6','编译原理','40');
insert into course values('7','程序实践4','40');
insert into course values('8','实践考核2','40');
*/

1
0
分享到:
评论

相关推荐

    java代码笔记2010-06-24:java 实现一个分页操作(JDBC+GUI-&gt;AWT) 实例

    这篇2010年6月24日的博客文章“Java代码笔记”提供了一个使用JDBC(Java Database Connectivity)与GUI(图形用户界面)AWT(Abstract Window Toolkit)实现分页操作的实例。接下来,我们将详细探讨这个知识点。 ...

    JAVA教程5--AWT图形界面设计

    AWT是一个用于创建Java应用程序和Applet的GUI组件集合。本章节将详细介绍AWT的基本概念、组件和容器,以及如何使用布局管理器来实现跨平台一致性的界面设计。 #### 2. AWT简介 AWT是Java API中用于创建GUI应用程序...

    Java的GUI设计-AWT基础-窗口类-AWT基本组-bb--Read.ppt

    在Java 1.0版本中,AWT的目标是创建一个跨平台的GUI框架,允许程序员编写能够在不同操作系统上运行的GUI应用。然而,初期的AWT并未完全实现这一目标,因为它在不同平台上的表现并不一致。从Java 1.1开始,这一情况...

    JAVA图形编程(AWT+SWING)

    Java图形编程是Java开发中的一个重要领域,主要用于创建用户界面和可视化应用。本资源包主要涵盖了两个核心库:AWT(Abstract Window Toolkit)和Swing,它们都是Java Foundation Classes (JFC) 的一部分,用于构建...

    java课程设计实例--计算器 报告 代码 一应俱全

    本项目是一个基于Java编程语言实现的图形用户界面(GUI)计算器应用,它提供了全面的功能报告和源代码,旨在帮助学习者深入理解Java GUI编程以及基础的算术运算处理。以下是对这个项目的详细解析: 1. **Java GUI...

    java的.awt包和java.util包的区别

    - **Swing**:Swing是在AWT基础上发展起来的一个更为现代化的GUI工具包。Swing组件使用了“look and feel”机制,这使得它们能够在不同的操作系统上具有一致的外观和行为。此外,Swing组件是完全用Java编写的,这...

    Java项目:人力管理系统(java+Gui+文档)

    总结来说,这个Java人力管理系统项目综合运用了Java编程、GUI设计、数据库操作、权限管理、MVC模式等多个关键知识点,是一个全面展示Java应用开发技能的实例。通过学习和实践这样的项目,开发者可以提升自己的技术...

    Java绘制实例---小熊.pdf

    本资源是关于Java绘制实例的学习资料,主要介绍了使用Java语言绘制一个小熊的实例。下面是对该资源的详细解读和知识点总结: 一、Java绘制实例概述 Java语言提供了强大的图形绘制能力,可以使用Graphics类来绘制...

    java实现体温单实例-eclipse-java工程

    本实例将探讨如何在Eclipse中实现一个体温单应用,这是一个常见的需求,特别是在医疗信息化系统中。体温单用于记录患者的体温变化,帮助医生监控病人的健康状况。 首先,我们需要了解Java基础,包括类、对象、变量...

    java笔记 java笔记

    - **继承特点**:Java支持单一继承,但一个类可以通过实现多个接口来模拟多重继承。 - **父类与子类的关系**:子类继承父类的属性和方法,并可添加新的方法或覆盖已有的方法。 - **构造对象的顺序**:首先构造父类...

    相关问题资料\java\AWT-组件.ppt

    AWT(Abstract Windowing Toolkit)是Java早期提供的图形用户界面(GUI)开发工具包,它为开发者提供了创建跨平台的GUI应用程序的基础。AWT包含在Java的`java.awt`包中,提供了各种组件、事件处理、图形和图像工具...

    Java计算器源代码 awt+swing图形界面

    Java 计算器源代码 awt+swing 图形界面是一款使用 Java 语言开发的图形化计算器应用程序,采用了 AWT 和 Swing 库来实现图形用户界面。下面是该计算器的主要知识点: 1. AWT 和 Swing 库:AWT(Abstract Window ...

    java打字游戏源代码

    Java Swing 是一个用于创建图形用户界面 (GUI) 的轻量级组件工具包,它允许开发者构建功能丰富的应用程序。在本项目中,`JFrame`, `JPanel`, `GridLayout` 和 `Font` 都是 Swing 中的重要类。 #### JFrame - **作用...

    Java课程设计---javaswing带GUI界面学生管理系统(源码+sqlite数据库).rar

    【Java课程设计---javaswing带GUI界面学生管理系统】是一个基于Java Swing开发的桌面应用程序,它为用户提供了图形用户界面(GUI)来管理学生信息。这个项目的核心目标是实现一个简单易用的学生信息管理系统,利用...

    JAVA 笔记 转的笔记

    - 确保一个类只有一个实例,并提供一个全局访问点。 - 常见实现方法有懒汉式、饿汉式等。 - **final关键字**: - final变量:值一旦初始化就不能改变。 - final方法:不能在子类中被重写。 - final类:不能被...

    学生管理系统gui的简单实现---基于java.awt

    在本项目“学生管理系统GUI的简单实现”中,开发者利用了AWT库来设计和实现了一个功能齐全的学生信息管理平台。 首先,我们来看登录界面布局的实现。在Java AWT中,可以使用各种组件如`Frame`(窗口)、`Label`...

    Java GUI实例下载

    Java图形用户界面(GUI,Graphical User Interface)是Java编程中的一个重要组成部分,它允许开发者创建交互式的桌面应用程序。本资源“Java GUI实例下载”提供了一系列关于Java GUI编程的实例,涵盖了事件处理、...

    java学习笔记

    ### Java学习笔记知识点总结 #### 一、Java/JavaEE概览 - **定义与特点**: - **Java**是一种广泛使用的面向对象的编程语言,由Sun Microsystems于1995年推出。 - **JavaEE**是Java平台企业版的简称,是一套为...

    用AWT包实现的JAVA计算器

    本项目“用AWT包实现的JAVA计算器”旨在通过AWT来构建一个功能完备的计算器应用。下面将详细介绍这个项目中的关键知识点。 1. **AWT组件**: - AWT提供了各种基本组件,如按钮(Button)、文本字段(TextField)、...

    新版Java实用教程

    - **接口**: 定义行为规范,多个类可以实现同一个接口。 - **抽象类**: 包含抽象方法的类,不能实例化。 #### 四、Java Applet - **定义**: 嵌入到HTML页面中的小程序。 - **生命周期**: 加载、初始化、启动、终止...

Global site tag (gtag.js) - Google Analytics