mysql java 分页实体类_Java GUI+mysql+分页查询
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+分页查询相关推荐
- java 复制实体类_Java实现两个实体类相同属性的复制/拷贝
在两个实体类里,有相同的属性,有不同的属性,相同名称的属性类型还可能不同,如何实现相同属性的拷贝/复制呢? 实体类 代码清单1:Neo4jNode.java package com.graph.dom ...
- java xml 实体类_java中的xml与实体类之间的映射
实体类: package xml; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement public class User ...
- mysql表 c#实体类,创建基于MySQL表中的C#类
Is there anything built into .Net or visual studio that will allow my to create classes based off of ...
- Java 分页实体类封装
在开发中我们经常会用到的分页实体类,这里封装一个简单的分页实体类 package com.xxx.xxx.page;import java.util.List; import java.util.Ob ...
- 将JSON数据转换成JAVA的实体类
思路:首先将JSON格式的数据转换成JSONObject,然后将JSONObject转换成Java的实体类(其中类属性包括List等类型) Java实体类: SearchFilter 类 1 publ ...
- 用java的robot类以及Gui 制作一个游戏(阴阳师)脚本
** 用java的robot类以及Gui 制作一个游戏(阴阳师)脚本 ** 由于阴阳师这个游戏肝度太大,就决定写一个脚本来模拟玩家的重复性操作.所以我就决定用java中的robot类中的一些方法来 ...
- 关于JAVA Bean实体类对象pojo,vo,po,dto,entity之间的区别
关于JAVA Bean实体类对象pojo,vo,po,dto,entity之间的区别: Pojo: Pojo 普通的java对象 最基本的javaBean只有属性 加上属性的get,set方法,可以转 ...
- java响应实体类封装
前后端分离的开发模式中,或者与第三方接口交互,需要规范接口响应,下面是我在开发中的封装的一组响应实体类 响应实体父类, 父类中需要一个code,因为不管是响应消息还是数据,都要有code /**- @ ...
- IDEA-自动生成java的实体类详细
IDEA-自动生成java的实体类 1.项目添加数据库. 2.生成实体类 3. 修改默认生成脚本 idea这个功能真的不错,生成的实体类几乎不用改动. 下面生成展示(自动生成的,没有人工进行改动) 很 ...
最新文章
- linux 简单dns搭建,搭建一个简易的DNS服务
- 在IE6/7下表格td标签没有内容时不显示边框?
- LinearLayout测量原理解析:onMeasure(int,int)
- python 会计专用格式_python-2.7 – 如何使用xlsxwriter将格式应用为“文本”和“会计”...
- matlab如何使音频文件声音变大_如何制作视频课程
- (76)信号发生器DDS锯齿波设计(二)(第16天)
- C# 运行时中的泛型
- 20191010:希尔排序代码详解
- React-Native 之 GD (三)近半小时热门
- mysql 备份工具简介
- 家庭记账本开发进度6
- 32位电脑ODBC连接
- 黑盒测试方法|测试用例的设计方法--等价类划分方法
- 先学python还是r-r语言和python学哪个?
- 无人机的电调及其工作原理是什么?
- jojo第七部dio怎么复活_JOJO杂谈:DIO复活的那些年到底在干什么?
- MSP-FET-430UIF无法使用
- C++:实现量化daycounters 日计数器测试实例
- PIE-engine 教程 ——新疆石河子市棉花种植面积提取(阈值法)案例分析
- Android开发规范,flutter生成二维码
热门文章
- SAP ABAP逻辑数据库
- ABAP实践学习--灰色的ALV显示
- 企业建立数据驱动决策该如何做?终于有大神总结全了
- 用户视角看百度移动:从流量集散地到流量目的地
- mysql checking permissions 优化_MySQL 之数据库优化
- vue 分享给好友 点击分享按钮_基于vue+leaflet+echart的足迹分享评论平台
- scanf 接收 空格 输入_【C/C++】【输入】关于scanf:输入空格,多次使用
- 数字黑洞java_[蓝桥杯][算法提高VIP]数字黑洞 (Java代码)
- java mvc 分页查询条件_java分页条件查询-GridManager.js表格插件+Pageable分页对象+mybatis pagehelper分页插件...
- 初中职校计算机学什么,职高有哪些专业 初中生毕业上职高学什么好