一,完成了 数据内部的 分页操作
二,实现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');
*/
分享到:
相关推荐
这篇2010年6月24日的博客文章“Java代码笔记”提供了一个使用JDBC(Java Database Connectivity)与GUI(图形用户界面)AWT(Abstract Window Toolkit)实现分页操作的实例。接下来,我们将详细探讨这个知识点。 ...
AWT是一个用于创建Java应用程序和Applet的GUI组件集合。本章节将详细介绍AWT的基本概念、组件和容器,以及如何使用布局管理器来实现跨平台一致性的界面设计。 #### 2. AWT简介 AWT是Java API中用于创建GUI应用程序...
在Java 1.0版本中,AWT的目标是创建一个跨平台的GUI框架,允许程序员编写能够在不同操作系统上运行的GUI应用。然而,初期的AWT并未完全实现这一目标,因为它在不同平台上的表现并不一致。从Java 1.1开始,这一情况...
Java图形编程是Java开发中的一个重要领域,主要用于创建用户界面和可视化应用。本资源包主要涵盖了两个核心库:AWT(Abstract Window Toolkit)和Swing,它们都是Java Foundation Classes (JFC) 的一部分,用于构建...
本项目是一个基于Java编程语言实现的图形用户界面(GUI)计算器应用,它提供了全面的功能报告和源代码,旨在帮助学习者深入理解Java GUI编程以及基础的算术运算处理。以下是对这个项目的详细解析: 1. **Java GUI...
- **Swing**:Swing是在AWT基础上发展起来的一个更为现代化的GUI工具包。Swing组件使用了“look and feel”机制,这使得它们能够在不同的操作系统上具有一致的外观和行为。此外,Swing组件是完全用Java编写的,这...
总结来说,这个Java人力管理系统项目综合运用了Java编程、GUI设计、数据库操作、权限管理、MVC模式等多个关键知识点,是一个全面展示Java应用开发技能的实例。通过学习和实践这样的项目,开发者可以提升自己的技术...
本资源是关于Java绘制实例的学习资料,主要介绍了使用Java语言绘制一个小熊的实例。下面是对该资源的详细解读和知识点总结: 一、Java绘制实例概述 Java语言提供了强大的图形绘制能力,可以使用Graphics类来绘制...
本实例将探讨如何在Eclipse中实现一个体温单应用,这是一个常见的需求,特别是在医疗信息化系统中。体温单用于记录患者的体温变化,帮助医生监控病人的健康状况。 首先,我们需要了解Java基础,包括类、对象、变量...
- **继承特点**:Java支持单一继承,但一个类可以通过实现多个接口来模拟多重继承。 - **父类与子类的关系**:子类继承父类的属性和方法,并可添加新的方法或覆盖已有的方法。 - **构造对象的顺序**:首先构造父类...
AWT(Abstract Windowing Toolkit)是Java早期提供的图形用户界面(GUI)开发工具包,它为开发者提供了创建跨平台的GUI应用程序的基础。AWT包含在Java的`java.awt`包中,提供了各种组件、事件处理、图形和图像工具...
Java 计算器源代码 awt+swing 图形界面是一款使用 Java 语言开发的图形化计算器应用程序,采用了 AWT 和 Swing 库来实现图形用户界面。下面是该计算器的主要知识点: 1. AWT 和 Swing 库:AWT(Abstract Window ...
Java Swing 是一个用于创建图形用户界面 (GUI) 的轻量级组件工具包,它允许开发者构建功能丰富的应用程序。在本项目中,`JFrame`, `JPanel`, `GridLayout` 和 `Font` 都是 Swing 中的重要类。 #### JFrame - **作用...
【Java课程设计---javaswing带GUI界面学生管理系统】是一个基于Java Swing开发的桌面应用程序,它为用户提供了图形用户界面(GUI)来管理学生信息。这个项目的核心目标是实现一个简单易用的学生信息管理系统,利用...
- 确保一个类只有一个实例,并提供一个全局访问点。 - 常见实现方法有懒汉式、饿汉式等。 - **final关键字**: - final变量:值一旦初始化就不能改变。 - final方法:不能在子类中被重写。 - final类:不能被...
在本项目“学生管理系统GUI的简单实现”中,开发者利用了AWT库来设计和实现了一个功能齐全的学生信息管理平台。 首先,我们来看登录界面布局的实现。在Java AWT中,可以使用各种组件如`Frame`(窗口)、`Label`...
Java图形用户界面(GUI,Graphical User Interface)是Java编程中的一个重要组成部分,它允许开发者创建交互式的桌面应用程序。本资源“Java GUI实例下载”提供了一系列关于Java GUI编程的实例,涵盖了事件处理、...
### Java学习笔记知识点总结 #### 一、Java/JavaEE概览 - **定义与特点**: - **Java**是一种广泛使用的面向对象的编程语言,由Sun Microsystems于1995年推出。 - **JavaEE**是Java平台企业版的简称,是一套为...
本项目“用AWT包实现的JAVA计算器”旨在通过AWT来构建一个功能完备的计算器应用。下面将详细介绍这个项目中的关键知识点。 1. **AWT组件**: - AWT提供了各种基本组件,如按钮(Button)、文本字段(TextField)、...
- **接口**: 定义行为规范,多个类可以实现同一个接口。 - **抽象类**: 包含抽象方法的类,不能实例化。 #### 四、Java Applet - **定义**: 嵌入到HTML页面中的小程序。 - **生命周期**: 加载、初始化、启动、终止...