⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 userdao.java

📁 仿google 分页的非常好的方法啊
💻 JAVA
字号:
package com.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import com.pojo.Uer;

/**
 * 分页
 * @author 孔国安 2008年3月10日
 * 用了2个小时总算搞定了。。。哎。。。中午又是一顿饼干汉。。。
 * 
 * 说明!!其实这里的关闭方法是没有被用到的,这里主要是演示的是
 * 分页所以数据库的增删改查方法就没有必要做过多的说明
 * 
 *作者联系qq:158520812
 */
public class UserDAO {
	
	Connection conn = null;

	PreparedStatement pstmt = null;

	ResultSet rs = null;
public void insert(int num){
	
	conn=com.opendb.OpenDB.conn();
	String sql="INSERT INTO `user` (`id`,`name`) VALUES (NULL,?)";
	try {
		pstmt=conn.prepareStatement(sql);
		pstmt.setLong(1,num);
		pstmt.execute();
	} catch (SQLException e) {
		// TODO 自动生成 catch 块
		e.printStackTrace();
	}
}
	public void close() {
		if (conn != null) {
			try {
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			conn = null;
		}
		if (pstmt != null) {
			try {
				pstmt.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			pstmt = null;
		}
		if (rs != null) {
			try {
				rs.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			rs = null;
		}

	}

	/**
	 * @return all user
	 */
	public ArrayList list() {

		conn = com.opendb.OpenDB.conn();
		ArrayList al = new ArrayList();
		Uer user = new Uer();
		String sql = "SELECT * FROM user";

		try {
			System.out.println(conn);
			pstmt = conn.prepareStatement(sql);
			rs = pstmt.executeQuery();

			while (rs.next()) {
				user = new Uer();
				user.setId(rs.getInt(1));
				user.setName(rs.getString(2));
				al.add(user);
			}
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
			System.out.print("异常!");
			al = null;
		} finally {
			close();
		}
		return al;
	}

	/**
	 * @param
	 * @return 分页记录
	 */
	public ArrayList page(int num) {
		conn = com.opendb.OpenDB.conn();
		ArrayList al = new ArrayList();
		Uer user;
		String sql = "SELECT * FROM `user` LIMIT ?,2";
		try {
			System.out.println(conn);
			pstmt = conn.prepareStatement(sql);
			pstmt.setInt(1, num*2);
			System.out.println("DAO++++"+num);
			rs = pstmt.executeQuery();

			while (rs.next()) {
				user = new Uer();
				user.setId(rs.getInt(1));
				user.setName(rs.getString(2));
				al.add(user);
			}
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
			System.out.print("异常!");
			al = null;
		} finally {
			close();
		}
		return al;
	}

	/**
	 * @return 记录数
	 */
	public int count() {
		conn = com.opendb.OpenDB.conn();
		int count = 0;

		String sql = "SELECT Count(id) FROM user";
		try {

			pstmt = conn.prepareStatement(sql);
			rs = pstmt.executeQuery();
			while (rs.next()) {
				count = rs.getInt(1);
			}

		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
			System.out.print("异常!");

		} finally {
			close();
		}
		return count;
	}

	/**
	 * @param page
	 * @param now_page
	 * @return 将分页的数据显示到页面
	 */
	public String page_cut(int page, int now_page) {
		System.out.println("DAO--page=" + page + "now_page=" + now_page);
		String view = null;
		int dao_now_page = now_page;//临时变量保持传入的当前页面
		int temp_now_page;//临时变量主要都是操作它
		if (dao_now_page > 1) {//如果当前页面大约1说明有上一页
			view += "<a href=login.do?action=page&next=" + (now_page - 1)
					+ ">上一页</a>";
		}
		if (dao_now_page > 3) {//当当前页面大于三的时候前面就使用...省略前面的
			System.out.println("+++++++++++111111");

			temp_now_page = now_page - 2;//该变临时变量的值
			view += "...<a href=login.do?action=page&next=" + temp_now_page
					+ ">" + temp_now_page + "</a>";//添加连接
			temp_now_page = now_page - 1;
			view += "&nbsp;<a href=login.do?action=page&next=" + temp_now_page
					+ ">" + temp_now_page + "</a>&nbsp;";//添加连接
			view += "[" + dao_now_page + "]";//当前页不需要任何连接
			now_page = dao_now_page;
			if (dao_now_page + 2 < page) {//当当前页+2小于总页数就使用...省略后面的
				System.out.println("+++++++++++222222");
				temp_now_page = now_page + 1;//改变值
				view += "&nbsp;<a href=login.do?action=page&next="
						+ temp_now_page + ">" + temp_now_page + "</a>";//添加连接
				temp_now_page = now_page + 2;
				view += "&nbsp;<a href=login.do?action=page&next="
						+ temp_now_page + ">" + temp_now_page + "</a>...";

			} 
			else {//当前页加+2>总页数。后面就不使用...省略后面
				for (int i = dao_now_page; i < page; i++) {
					System.out.println("+++++++++++3333");
					view += "&nbsp;<a href=login.do?action=page&next="
							+ (i + 1) + ">" + (i + 1) + "</a>";//添加练级
				}
			}
		} else {//当当前页面不大于3的时候
			if (page > 1) {//如果总页数大于1
				if (dao_now_page + 2 < page) {//当前页+2小于总页数
					System.out.println("+++++++++444");
					for (int i = 1; i <= dao_now_page; i++) {
						System.out.println("+++++++++555");
						if (i != dao_now_page) {//判断是否是当前页
							view += "&nbsp;<a href=login.do?action=page&next="
									+ i + ">" + i + "</a>";//为当前页面的前面页面添加连接
						} else {
							view += "[" + i + "]";//当前页不添加连接
						}
					}
					temp_now_page = now_page + 1;//当前页的下一页
					view += "&nbsp;<a href=login.do?action=page&next="
							+ temp_now_page + ">" + temp_now_page + "</a>";//添加连接
					temp_now_page = now_page + 2;//当前页的下2页
					view += "&nbsp;<a href=login.do?action=page&next="
							+ temp_now_page + ">" + temp_now_page + "</a>...";//添加连接连接上。。。省略后面的数字

				} else {//当前页面+2大于了页数说明后面的页面不会用...省略
					for (int i = 0; i < page; i++) {
						System.out.println("+++++++++666");
						int ii=i+1;
						if(ii==dao_now_page){
							view+="["+ii+"]";//不为当前页添加连接
						}else{
						view += "&nbsp;<a href=login.do?action=page&next=" + ii
								+ ">" + ii + "</a>";//添加连接
						}
					}
				}
			}

		}
		if ((dao_now_page != page) && (page != 0)) {
			if(dao_now_page==0){
				view += "<a href=login.do?action=page&next=" + (now_page+1)
				+ ">下一页</a>";
			}
			view += "<a href=login.do?action=page&next=" + (now_page+1)
					+ ">下一页</a>";
		}
		if (page == 1) {

			view += "[" + page + "]";
		}
        if(page>1){
        	view+="<input type='text' name='go' id='go'  size='4' maxlength='5'><input type='Button' name='ok' value='跳转到' onclick='gopage()'>";
        }
		return view.replaceAll("null", "");
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -