设为首页 收藏本站
查看: 538|回复: 0

[经验分享] MySql 分页

[复制链接]

尚未签到

发表于 2016-9-6 06:02:36 | 显示全部楼层 |阅读模式
package com.yous365.dao;   
import java.sql.Connection;   
import java.sql.DriverManager;   
import java.sql.PreparedStatement;   
import java.sql.ResultSet;   
import java.sql.ResultSetMetaData;   
import java.sql.SQLException;   
import java.util.ArrayList;   
import java.util.HashMap;   
import java.util.Iterator;   
import java.util.List;   
import java.util.Map;   
import com.hcwy.basic.jdbc.DBConnection;   
import com.hcwy.basic.page.PageBean;   
public class ArticlesDAO {   
private static final Map HashMap = null;   
private PreparedStatement pstmt;   
private ResultSet rs;   
private Connection con;   
//  private DBConnection conn;   

public Connection conn(){   
try {   
Class.forName("com.mysql.jdbc.Driver");   
try {   
con=DriverManager.getConnection("jdbc:mysql://localhost:3316/hcwy","root","root");   
} catch (SQLException e) {   
e.printStackTrace();   
}   
} catch (ClassNotFoundException e) {   
e.printStackTrace();   
}   
return con;   
}   

//查询SQL   
public ArrayList chaSQL(String sql){   
ArrayList list=new ArrayList();   
try {   
pstmt=this.conn().prepareStatement(sql);   
rs=pstmt.executeQuery();   
ResultSetMetaData rsmd=rs.getMetaData();   
int count=rsmd.getColumnCount();   
while(rs.next()){   
//              System.out.println("名字是-->"+rsmd.getColumnName(i)+"\t 得到的object是-->"+rs.getObject(i)+"   "+i);   
HashMap map=new HashMap();   
for(int i=0;i<count;i++){   
map.put(rsmd.getColumnName(i+1), rs.getObject(i+1));   
}   
list.add(map);   
}   

} catch (SQLException e) {   
e.printStackTrace();   
}   
return list;   
}   
//查询所总条数   
public int count(String name){   
String sql="select count(*) as aa from "+name;   
int i=0;   
try {   
pstmt=this.conn().prepareStatement(sql);   
rs=pstmt.executeQuery();   
if(rs.next()){   
i=rs.getInt("aa");   
}   
} catch (SQLException e) {   
e.printStackTrace();   
}   
return i;   
}   

//查询SQL带分页   
public ArrayList chaSQL(String sql,String name,PageBean page){   
ArrayList list=new ArrayList();   
if(page!=null){   
page.setTotalCount(this.count(name));   
sql=sql+" limit "+page.getStart()+","+page.getPageSize();   
}   
System.out.println(sql);   
try {   
pstmt=this.conn().prepareStatement(sql);   
rs=pstmt.executeQuery();   
ResultSetMetaData rsmd=rs.getMetaData();   
int count=rsmd.getColumnCount();//得到表里字段的总数   
while(rs.next()){   
//              System.out.println("名字是-->"+rsmd.getColumnName(i)+"\t 得到的object是-->"+rs.getObject(i)+"   "+i);   
HashMap map=new HashMap();   
for(int i=0;i<count;i++){   
map.put(rsmd.getColumnName(i+1), rs.getObject(i+1));//名字和值   
}   
list.add(map);   
}   

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


public static void main(String[] args) {   
PageBean page=new PageBean();   
ArticlesDAO dd=new ArticlesDAO();   
ArrayList list=dd.chaSQL("select * from articles","articles",page);//如果这里不写page和articles的意思 就是说不要分页   
//任何对象都能解析   
for(int i=0;i<list.size();i++){   
HashMap map=(HashMap)list.get(i);   
Iterator it=map.keySet().iterator();   
while(it.hasNext()){   
Object id=it.next();   
System.out.println(""+map.get(id));   
}   
System.out.println("\n");   
}   

//      ArticlesDAO dd=new ArticlesDAO();   
//      System.out.println(dd.count("articles"));   

}   

}  
package com.yous365.dao;  
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import com.hcwy.basic.jdbc.DBConnection;
import com.hcwy.basic.page.PageBean;
public class ArticlesDAO {
private static final Map HashMap = null;
private PreparedStatement pstmt;
private ResultSet rs;
private Connection con;
//private DBConnection conn;

public Connection conn(){
try {
Class.forName("com.mysql.jdbc.Driver");
try {
con=DriverManager.getConnection("jdbc:mysql://localhost:3316/hcwy","root","root");
} catch (SQLException e) {
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return con;
}

//查询SQL
public ArrayList chaSQL(String sql){
ArrayList list=new ArrayList();
try {
pstmt=this.conn().prepareStatement(sql);
rs=pstmt.executeQuery();
ResultSetMetaData rsmd=rs.getMetaData();
int count=rsmd.getColumnCount();
while(rs.next()){
//System.out.println("名字是-->"+rsmd.getColumnName(i)+"\t 得到的object是-->"+rs.getObject(i)+"   "+i);
HashMap map=new HashMap();
for(int i=0;i<count;i++){
map.put(rsmd.getColumnName(i+1), rs.getObject(i+1));
}
list.add(map);
}

} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
//查询所总条数
public int count(String name){
String sql="select count(*) as aa from "+name;
int i=0;
try {
pstmt=this.conn().prepareStatement(sql);
rs=pstmt.executeQuery();
if(rs.next()){
i=rs.getInt("aa");
}
} catch (SQLException e) {
e.printStackTrace();
}
return i;
}

//查询SQL带分页
public ArrayList chaSQL(String sql,String name,PageBean page){
ArrayList list=new ArrayList();
if(page!=null){
page.setTotalCount(this.count(name));
sql=sql+" limit "+page.getStart()+","+page.getPageSize();
}
System.out.println(sql);
try {
pstmt=this.conn().prepareStatement(sql);
rs=pstmt.executeQuery();
ResultSetMetaData rsmd=rs.getMetaData();
int count=rsmd.getColumnCount();//得到表里字段的总数
while(rs.next()){
//System.out.println("名字是-->"+rsmd.getColumnName(i)+"\t 得到的object是-->"+rs.getObject(i)+"   "+i);
HashMap map=new HashMap();
for(int i=0;i<count;i++){
map.put(rsmd.getColumnName(i+1), rs.getObject(i+1));//名字和值
}
list.add(map);
}

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


public static void main(String[] args) {
PageBean page=new PageBean();
ArticlesDAO dd=new ArticlesDAO();
ArrayList list=dd.chaSQL("select * from articles","articles",page);//如果这里不写page和articles的意思 就是说不要分页
//任何对象都能解析
for(int i=0;i<list.size();i++){
HashMap map=(HashMap)list.get(i);
Iterator it=map.keySet().iterator();
while(it.hasNext()){
Object id=it.next();
System.out.println(""+map.get(id));
}
System.out.println("\n");
}

//ArticlesDAO dd=new ArticlesDAO();
//System.out.println(dd.count("articles"));

}

}



package com.yous365.util;  
public class PageBean {   
private static final int DEFAULT_PAGE_SIZE = 20;   
private int pageSize = DEFAULT_PAGE_SIZE;  // 每页的记录数   
private int start=0;  // 当前页第一条数据在List中的位置,从0开始   
private int page=1;  //当前页   
private int totalPage=0;  //总计有多少页   
private int totalCount=0;  // 总记录数   
////////////////   
//  构造函数   
public PageBean() {   
}   
public PageBean(int page) {   
this.page=page;   
}   
/////////////////   
public void setPage(int page) {   
if(page>0) {   
start=(page-1)*pageSize;   
this.page = page;   
}   
}   
public int getPage() {   
return page;   
}   
public int getPageSize() {   
return pageSize;   
}   
public PageBean setPageSize(int pageSize) {   
this.pageSize = pageSize;   
return this;   
}   
/**  
* @return the start  
*/  
public int getStart() {   
return start;   
}   
//  此位置根据计算得到   
protected void setStart() {   
}   
/**  
* @return the totalCount  
*/  
public int getTotalCount() {   
return totalCount;   
}   
public void setTotalCount(int totalCount) {   
this.totalCount=totalCount;   
totalPage = (int) Math.ceil((totalCount + pageSize - 1) / pageSize);   
start=(page-1)*pageSize;   
}   
//  总页面数根据总数计算得到   
protected void setTotalPage() {   
}   
public int getTotalPage() {   
return totalPage;   
}   

///////////////   
//获取上一页页数   
public int getLastPage() {   
if(hasLastPage()) {   
return page-1;   
}   
return page;   
}   
public int getNextPage() {   
if(hasNextPage()) {   
return page+1;   
}   
return page;   
}   
/**  
* 该页是否有下一页.  
*/  
public boolean hasNextPage() {   
return page < totalPage;   
}   
/**  
* 该页是否有上一页.  
*/  
public boolean hasLastPage() {   
return page > 1;   
}   

}

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-268098-1-1.html 上篇帖子: mysql join 下篇帖子: JDBC+mysql
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表