📄 userdao.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 += " <a href=login.do?action=page&next=" + temp_now_page
+ ">" + temp_now_page + "</a> ";//添加连接
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 += " <a href=login.do?action=page&next="
+ temp_now_page + ">" + temp_now_page + "</a>";//添加连接
temp_now_page = now_page + 2;
view += " <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 += " <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 += " <a href=login.do?action=page&next="
+ i + ">" + i + "</a>";//为当前页面的前面页面添加连接
} else {
view += "[" + i + "]";//当前页不添加连接
}
}
temp_now_page = now_page + 1;//当前页的下一页
view += " <a href=login.do?action=page&next="
+ temp_now_page + ">" + temp_now_page + "</a>";//添加连接
temp_now_page = now_page + 2;//当前页的下2页
view += " <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 += " <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 + -