1.要求 : 创建一个学生信息管理数据库

2.实现分页查询

代码如下:

a)学生实体类:

/***@author: Annie

* @date:2016年6月23日

* @description:学生实体类 学号+姓名+密码*/

public classstudent {private intsid;privateString sname;privateString spassword;public student(intsid, String sname, String spassword) {this.sid =sid;this.sname =sname;this.spassword =spassword;

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

}public voidsetSname(String sname) {this.sname =sname;

}public voidsetSpassword(String spassword) {this.spassword =spassword;

}public intgetSid() {return this.sid;

}publicString getSname() {return this.sname;

}publicString getSpassword() {return this.spassword;

}public voidshowStudentInfo() {

System.out.println("学号:" + this.getSid() + "\t姓名:" + this.getSname()+ "\t密码:" + this.getSpassword());

}publicString getStudentInfo() {return "学号" + this.getSid() + "姓名" + this.getSname() + "密码:"

+ this.getSpassword()+"\n";

}

}

b)数据库操作类

importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjava.util.ArrayList;importjava.util.Iterator;/***@author: Annie

* @date:2016年6月23日

* @description:*/

public classlinkDB {

ArrayList arrayS = null;final int per_pages_size=5;//每个页面的长度,即每个页面几条数据//数据库的连接的方法

publicConnection getConnection2() {

Connection conn= null;

String url= "jdbc:mysql://localhost:3306/test";try{

Class.forName("com.mysql.jdbc.Driver");

conn= DriverManager.getConnection(url, "root", "12345678");

}catch(SQLException e) {

System.out.println("SQL 异常");

e.printStackTrace();

}catch(ClassNotFoundException e) {

System.out.println("数据库没有找到");

e.printStackTrace();

}returnconn;

}/*** 数据库中查询的代码,返回一个结果集

**/

publicResultSet getAllStudent_info() {

Connection conn= this.getConnection2();

Statement comm= null;

ResultSet rs= null;try{

comm=conn.createStatement();

String sql2= "select * from student order by sid";

rs=comm.executeQuery(sql2);returnrs;

}catch(SQLException e) {

e.printStackTrace();

}returnrs;

}/*** 获取数据库中的总行数

**/

public intgetPagesTotalSize() {//得到查询的结果集

ResultSet rs = this.getAllStudent_info();int totalsize = 0;//数据总体的行数

try{

rs.last();//将光标移动到此 ResultSet 对象的最后一行//获取当前行编号(先将光标移到最后一行,然后再获取最后一行的下标,即可得到整个数据库的行数)

totalsize =rs.getRow();

}catch(SQLException e) {

e.printStackTrace();

}returntotalsize;

}/*** 得到总共的页数的方法

**/

public intgetPagesNum() {int totalsize = (Integer)this.getPagesTotalSize()/per_pages_size;return (totalsize+1);

}/*** 将从数据库里遍历到的数据装到数组里

**/

public ArrayList get_per_Page(intper_pages_num) {//得到所有学生的结果集

ResultSet rs = this.getAllStudent_info();//定义一个装学生对象的集合

ArrayList arrayS = newArrayList();int totalsize = this.getPagesTotalSize();int sid = 0;//学号

String sname = null;//姓名

String spassword = null;//密码

if (per_pages_size * (per_pages_num - 1) 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= newstudent(sid, sname, spassword);

arrayS.add(s);

}catch(SQLException e) {

e.printStackTrace();

}

}

}else{

System.out.println("超出范围");

}returnarrayS;

}/*** 展示数据的方法

**/

public void test_per_page(intid) {

ArrayList arrayS = this.get_per_Page(id);//遍历数组,将数据展示在文本域里

for (Iterator i =arrayS.iterator(); i.hasNext();) {

student s=(student) i.next();

s.showStudentInfo();

}

}

}

c)主界面类

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

/***@author: Annie

* @date:2016年6月23日

* @description:*/

public class MainPages extendsFrame{private int currentlyPage = 1; //初始化当前的页数

privatePanel center, bottom;privateButton previously, next, first, tail;privateTextArea ta;private linkDB ldb = newlinkDB();

ArrayList arrayS = null;publicMainPages() {this.previously = new Button("上一页");this.next = new Button("下一页");this.first = new Button("首页");this.tail = new Button("尾页");this.ta = newTextArea();

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= newMyListener();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(newWindowAdapter() {public voidwindowClosing(WindowEvent e) {

setVisible(false);

dispose();

System.exit(0);

}

});//对关闭窗口做监听

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

}/*** 初始化第一页

**/

voidinitialization() {

showDate();

}/*** 对按钮做监听的方法

**/

class MyListener implementsActionListener {public voidactionPerformed(ActionEvent e) {

ta.setText("");if (e.getSource() == previously) {//上一页的按钮

if (currentlyPage >= 2) {

currentlyPage--;

}else{

ta.append("当前为第一页!\n");

}//展示数据

showDate();

}else if (e.getSource() == next) { //如果为下一页

ta.setText("");int pagesNum =ldb.getPagesNum();if (currentlyPage < pagesNum) {//如果当前的页码小于总页数

currentlyPage++;

}else{

ta.append("当前为最后一页!\n");

}

showDate();

}else if (e.getSource() == first) {//如果是首页

ta.setText("");

currentlyPage= 1;

showDate();

}else if (e.getSource() == tail) {//如果是尾页

ta.setText("");

currentlyPage=ldb.getPagesNum();

showDate();

}

}

}/*** 展示数据*/

public voidshowDate() {

arrayS=ldb.get_per_Page(currentlyPage);

Iterator i=arrayS.iterator();while( i.hasNext()) {

student s=(student) i.next();

ta.append(s.getStudentInfo());

}

}public static voidmain(String[] args) {

MainPages mp= newMainPages();

}

}

d)创建数据库的表格及插入数据

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');

实现效果图:

mysql java 分页实体类_Java GUI+mysql+分页查询相关推荐

  1. java 复制实体类_Java实现两个实体类相同属性的复制/拷贝

    在两个实体类里,有相同的属性,有不同的属性,相同名称的属性类型还可能不同,如何实现相同属性的拷贝/复制呢? 实体类 代码清单1:Neo4jNode.java package com.graph.dom ...

  2. java xml 实体类_java中的xml与实体类之间的映射

    实体类: package xml; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement public class User ...

  3. mysql表 c#实体类,创建基于MySQL表中的C#类

    Is there anything built into .Net or visual studio that will allow my to create classes based off of ...

  4. Java 分页实体类封装

    在开发中我们经常会用到的分页实体类,这里封装一个简单的分页实体类 package com.xxx.xxx.page;import java.util.List; import java.util.Ob ...

  5. 将JSON数据转换成JAVA的实体类

    思路:首先将JSON格式的数据转换成JSONObject,然后将JSONObject转换成Java的实体类(其中类属性包括List等类型) Java实体类: SearchFilter 类 1 publ ...

  6. 用java的robot类以及Gui 制作一个游戏(阴阳师)脚本

    ** 用java的robot类以及Gui 制作一个游戏(阴阳师)脚本 **   由于阴阳师这个游戏肝度太大,就决定写一个脚本来模拟玩家的重复性操作.所以我就决定用java中的robot类中的一些方法来 ...

  7. 关于JAVA Bean实体类对象pojo,vo,po,dto,entity之间的区别

    关于JAVA Bean实体类对象pojo,vo,po,dto,entity之间的区别: Pojo: Pojo 普通的java对象 最基本的javaBean只有属性 加上属性的get,set方法,可以转 ...

  8. java响应实体类封装

    前后端分离的开发模式中,或者与第三方接口交互,需要规范接口响应,下面是我在开发中的封装的一组响应实体类 响应实体父类, 父类中需要一个code,因为不管是响应消息还是数据,都要有code /**- @ ...

  9. IDEA-自动生成java的实体类详细

    IDEA-自动生成java的实体类 1.项目添加数据库. 2.生成实体类 3. 修改默认生成脚本 idea这个功能真的不错,生成的实体类几乎不用改动. 下面生成展示(自动生成的,没有人工进行改动) 很 ...

最新文章

  1. linux 简单dns搭建,搭建一个简易的DNS服务
  2. 在IE6/7下表格td标签没有内容时不显示边框?
  3. LinearLayout测量原理解析:onMeasure(int,int)
  4. python 会计专用格式_python-2.7 – 如何使用xlsxwriter将格式应用为“文本”和“会计”...
  5. matlab如何使音频文件声音变大_如何制作视频课程
  6. (76)信号发生器DDS锯齿波设计(二)(第16天)
  7. C# 运行时中的泛型
  8. 20191010:希尔排序代码详解
  9. React-Native 之 GD (三)近半小时热门
  10. mysql 备份工具简介
  11. 家庭记账本开发进度6
  12. 32位电脑ODBC连接
  13. 黑盒测试方法|测试用例的设计方法--等价类划分方法
  14. 先学python还是r-r语言和python学哪个?
  15. 无人机的电调及其工作原理是什么?
  16. jojo第七部dio怎么复活_JOJO杂谈:DIO复活的那些年到底在干什么?
  17. MSP-FET-430UIF无法使用
  18. C++:实现量化daycounters 日计数器测试实例
  19. PIE-engine 教程 ——新疆石河子市棉花种植面积提取(阈值法)案例分析
  20. Android开发规范,flutter生成二维码

热门文章

  1. SAP ABAP逻辑数据库
  2. ABAP实践学习--灰色的ALV显示
  3. 企业建立数据驱动决策该如何做?终于有大神总结全了
  4. 用户视角看百度移动:从流量集散地到流量目的地
  5. mysql checking permissions 优化_MySQL 之数据库优化
  6. vue 分享给好友 点击分享按钮_基于vue+leaflet+echart的足迹分享评论平台
  7. scanf 接收 空格 输入_【C/C++】【输入】关于scanf:输入空格,多次使用
  8. 数字黑洞java_[蓝桥杯][算法提高VIP]数字黑洞 (Java代码)
  9. java mvc 分页查询条件_java分页条件查询-GridManager.js表格插件+Pageable分页对象+mybatis pagehelper分页插件...
  10. 初中职校计算机学什么,职高有哪些专业 初中生毕业上职高学什么好