📄 userinfopage.java~94~
字号:
package gxaccp.t07.guoneng_wei.petclinicmanagesystem.actionform;
import java.io.*;
import java.sql.*;
import java.util.*;
import javax.servlet.http.*;
import org.apache.struts.action.*;
import gxaccp.t07.guoneng_wei.jdbc.*;
public class UserInfoPage
extends ActionForm implements Serializable {
private int currentPage = 1; //当前是第几页
private int maxPage = 0; //一共有多少页
private int maxRowCount = 0; //一共有多少行
private int rowsPerPage = 5; //每页多少行
private Vector data = null;
//关于动态的字符串,是不可以在对象最初生成的时候就初始化的,而应该用方法动态操作
private String queryString = "";
public UserInfoPage() {
}
public void init(int currentPage) {
Connection con = DataBaseAccess.getConnection(); //连接数据库
this.setCurrentPage(currentPage);//当前页的设置
this.setMaxRowCount(this.rowsCount(con)); //查询总共有多少行计录
this.setMaxPage(this.evaluMaxPage()); //计算出有多少页
this.setData(this.selectData(con)); //查询出当前页数据
DataBaseAccess.closeConnection(con);//关闭数据库链接
System.out.println(this.queryString);
if
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
public void setMaxPage(int maxPage) {
this.maxPage = maxPage;
}
public void setMaxRowCount(int maxRowCount) {
this.maxRowCount = maxRowCount;
}
public void setRowsPerPage(int rowsPerPage) {
this.rowsPerPage = rowsPerPage;
}
public void setData(Vector data) {
this.data = data;
}
private void setQueryString() {
//关于动态的字符串,是不可以在对象最初生成的时候就初始化的,而应该用方法动态操作
this.queryString = "SELECT TOP " + this.rowsPerPage + /*每页多少行*/
" * FROM UserInfo WHERE ID NOT IN(SELECT TOP " +
( (this.currentPage - 1) * this.rowsPerPage) +
" ID FROM UserInfo )"; /*当前页码-1乘以每页最大行数*/
}
public int getCurrentPage() {
return currentPage;
}
public int getMaxPage() {
return maxPage;
}
public int getMaxRowCount() {
return maxRowCount;
}
public int getRowsPerPage() {
return rowsPerPage;
}
public Vector getData() {
return data;
}
public String getQueryString() {
this.setQueryString();//设置查询字符串并返回
return queryString;
}
private Vector selectData(Connection con) {
PreparedStatement pst = null;
ResultSet rs = null;
Vector v = new Vector();
boolean flag = false;
try {
pst = con.prepareStatement(this.getQueryString()); //注意动态提取查询字符串
rs = pst.executeQuery();
while (rs.next()) {
// ID UserName UserPassword IsAdmin
flag = true;
UserInfo ui = new UserInfo();
ui.setUserID(rs.getString("ID"));
ui.setUserName(rs.getString("UserName"));
ui.setUserPassword(rs.getString("UserPassword"));
ui.setIsAdmin(rs.getString("IsAdmin"));
// ui.setAdmin(rs.getString("IsAdmin").equals("1")?true:false);
v.addElement(ui);
}
if (flag) {
return v;
}
}
catch (Exception ex) {
System.out.println("异常出现在 selectData 方法中,查询当前页用户数据时");
System.out.println("<<" + ex + ">>");
}
finally {
DataBaseAccess.closeResultSet(rs);
DataBaseAccess.closeStatement(pst);
}
return null;
}
private int rowsCount(Connection con) {
PreparedStatement pst = null;
ResultSet rs = null;
String select = "SELECT COUNT(*) FROM UserInfo";
int rowsNum = 0;
try {
pst = con.prepareStatement(select);
rs = pst.executeQuery();
if (rs.next()) {
rowsNum = rs.getInt(1);
}
}
catch (Exception ex) {
System.out.println("异常出现在 rowsCount 方法中,查询用户行数时");
System.out.println("<<" + ex + ">>");
}
finally {
DataBaseAccess.closeResultSet(rs);
DataBaseAccess.closeStatement(pst);
}
return rowsNum;
}
private int evaluMaxPage() {
if (this.maxRowCount % this.rowsPerPage == 0) {
return this.maxRowCount / this.rowsPerPage;
}
else {
return this.maxRowCount / this.rowsPerPage + 1;
}
}
public ActionErrors validate(ActionMapping actionMapping,
HttpServletRequest httpServletRequest) {
/** @todo: finish this method, this is just the skeleton.*/
/*只供参考,为防忘记 */
boolean flag = false;
ActionErrors errors = new ActionErrors();
if (flag) {
errors.add("错误键", new ActionError("错误消息"));
flag = true;
}
if (flag) {
errors.add("错误键", new ActionError("错误消息"));
flag = true;
}
if (flag) {
return errors; //验证不合格者,返回封装了错误信息的ActionErrors对象
}
return null; ////验证合格者,返回null
}
public void reset(ActionMapping actionMapping,
HttpServletRequest servletRequest) {
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -