- 浏览: 92142 次
- 性别:
- 来自: 北京
最新评论
-
xiangzihehao:
非常感谢~
JFreechart V1.0.9 Guide(英文版) -
minn84:
...
一个老程序员的忠告:不要一辈子靠技术生存 -
小斌江:
非常非常非常的感谢楼主。。。
JFreechart V1.0.9 Guide(英文版) -
yutian8888:
谢谢你老兄!我找了很久,在你这里得到的解决!!
Java web 根据url下载文件IE出错,FF正常 -
liuwenbo200285:
学习了,面试的时候经常问这个问题,估计有的面试官也不知道如果不 ...
StringBuilder StringBuffer and "+"
在网上看了好多的分页程序,有好多hibernate的或是jdbcTemplate的 ,反正很多啦,,,后来一想自己能不能直接用Jdbc来做啊,,,你想你用hibernate或jdbcTemplate 它们都封装的也都是jdbc...
后来参考了一篇文章...是extends ResultSet Interface
具体的处理实现类则是实现这个接口
超长,哈,好多方法没有实现...其实实现类都是用的ResultSet来处理,还是交给了jdbc来处理,我们只要把得到的东西 "代理"一下即可.
jsp页面
index.jsp
补充 ,,jsp页面的资源没有释放.特此补上
后来参考了一篇文章...是extends ResultSet Interface
import java.sql.ResultSet; import java.sql.SQLException; /** * @author Administrator * */ public interface IPagination extends ResultSet { /** * 返回总页数 */ int getTotalPages(); //返回当前页的记录条数 int getPageRowsCount(); //得到分页大小 int getPageSize(); //转到指定页 void gotoPage(int page); //设置分页大小 void setPageSize(int pageSize); //返回总记录行数 int getRowsCount(); //转到当前页的第一条记录 void pageFirst() throws SQLException; //转到当前页最后一条记录 void pageLast() throws SQLException; //返回当前页码 int getCurPage(); }
具体的处理实现类则是实现这个接口
import java.io.InputStream; import java.io.Reader; import java.math.BigDecimal; import java.net.URL; import java.sql.Array; import java.sql.Blob; import java.sql.Clob; import java.sql.Date; import java.sql.Ref; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.SQLWarning; import java.sql.Statement; import java.sql.Time; import java.sql.Timestamp; import java.util.Calendar; import java.util.Map; /** * @author Administrator * */ public class PaginationeImpl implements IPagination { /** * default constructors */ public PaginationeImpl() { } /**transfer ResultSet as parameter constructors * @param rs */ public PaginationeImpl(ResultSet rs) throws SQLException{ if(rs == null) throw new SQLException("given ResultSet is NULL","user"); rs.last(); rowsCount = rs.getRow(); rs.beforeFirst(); this.rs = rs; } /* * (non-Javadoc) * * @see controller.Pageable#getCurPage() */ public int getCurPage() { return curPage; } /** * @return */ public int getPageCount() { if (rowsCount == 0) return 0; if (pageSize == 0) return 1; // calculate PageCount double tmpD = (double) rowsCount / pageSize; int tmpI = (int) tmpD; if (tmpD > tmpI) tmpI++; return tmpI; } /* * (non-Javadoc) * * @see controller.Pageable#getPageRowsCount() */ public int getPageRowsCount() { if (pageSize == 0) return rowsCount; if (getRowsCount() == 0) return 0; if (curPage != getPageCount()) return pageSize; return rowsCount - (getPageCount() - 1) * pageSize; } /* * (non-Javadoc) * * @see controller.Pageable#getPageSize() */ public int getPageSize() { return pageSize; } /* * (non-Javadoc) * * @see controller.Pageable#getRowsCount() */ public int getRowsCount() { return rowsCount != 0 ? rowsCount : 0; } /* * (non-Javadoc) * * @see controller.Pageable#getTotalPages() */ public int getTotalPages() { return 0; } /* * (non-Javadoc) * * @see controller.Pageable#gotoPage(int) */ public void gotoPage(int page) { if (rs == null) return; if (page < 1) page = 1; if (page > this.getPageCount()) page = getPageCount(); int row = (page - 1) * pageSize + 1; try { rs.absolute(row); curPage = page; } catch (Exception e) { e.printStackTrace(); System.err.println(e.toString()); } } /* * (non-Javadoc) * * @see controller.Pageable#pageFirst() */ public void pageFirst() throws SQLException { int row = (curPage - 1) * pageSize + 1; rs.absolute(row); } /* * (non-Javadoc) * * @see controller.Pageable#pageLast() */ public void pageLast() throws SQLException { int row = (curPage - 1) * pageSize + this.getRowsCount(); rs.absolute(row); } /* * (non-Javadoc) * * @see controller.Pageable#setPageSize(int) */ public void setPageSize(int pageSize) { if (pageSize >= 0) this.pageSize = pageSize; this.curPage = 1; } /* * (non-Javadoc) * * @see java.sql.ResultSet#absolute(int) */ public boolean absolute(int row) throws SQLException { return rs.absolute(row); } /* * (non-Javadoc) * * @see java.sql.ResultSet#afterLast() */ public void afterLast() throws SQLException { if (rs != null) rs.afterLast(); } /* * (non-Javadoc) * * @see java.sql.ResultSet#beforeFirst() */ public void beforeFirst() throws SQLException { if (rs != null) rs.beforeFirst(); } /* * (non-Javadoc) * * @see java.sql.ResultSet#cancelRowUpdates() */ public void cancelRowUpdates() throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#clearWarnings() */ public void clearWarnings() throws SQLException { rs.clearWarnings(); } /* * (non-Javadoc) * * @see java.sql.ResultSet#close() */ public void close() throws SQLException { if (rs != null) rs.close(); } /* * (non-Javadoc) * * @see java.sql.ResultSet#deleteRow() */ public void deleteRow() throws SQLException { rs.deleteRow(); } /* * (non-Javadoc) * * @see java.sql.ResultSet#findColumn(java.lang.String) */ public int findColumn(String columnName) throws SQLException { return rs.findColumn(columnName); } /* * (non-Javadoc) * * @see java.sql.ResultSet#first() */ public boolean first() throws SQLException { return rs.first(); } /* * (non-Javadoc) * * @see java.sql.ResultSet#getArray(int) */ public Array getArray(int i) throws SQLException { return rs.getArray(i); } /* * (non-Javadoc) * * @see java.sql.ResultSet#getArray(java.lang.String) */ public Array getArray(String colName) throws SQLException { return rs.getArray(colName); } /* * (non-Javadoc) * * @see java.sql.ResultSet#getAsciiStream(int) */ public InputStream getAsciiStream(int columnIndex) throws SQLException { return null; } /* * (non-Javadoc) * * @see java.sql.ResultSet#getAsciiStream(java.lang.String) */ public InputStream getAsciiStream(String columnName) throws SQLException { return null; } /* * (non-Javadoc) * * @see java.sql.ResultSet#getBigDecimal(int) */ public BigDecimal getBigDecimal(int columnIndex) throws SQLException { return null; } /* * (non-Javadoc) * * @see java.sql.ResultSet#getBigDecimal(java.lang.String) */ public BigDecimal getBigDecimal(String columnName) throws SQLException { return null; } /* * (non-Javadoc) * * @see java.sql.ResultSet#getBigDecimal(int, int) */ public BigDecimal getBigDecimal(int columnIndex, int scale) throws SQLException { return null; } /* * (non-Javadoc) * * @see java.sql.ResultSet#getBigDecimal(java.lang.String, int) */ public BigDecimal getBigDecimal(String columnName, int scale) throws SQLException { return null; } /* * (non-Javadoc) * * @see java.sql.ResultSet#getBinaryStream(int) */ public InputStream getBinaryStream(int columnIndex) throws SQLException { return null; } /* * (non-Javadoc) * * @see java.sql.ResultSet#getBinaryStream(java.lang.String) */ public InputStream getBinaryStream(String columnName) throws SQLException { return null; } /* * (non-Javadoc) * * @see java.sql.ResultSet#getBlob(int) */ public Blob getBlob(int i) throws SQLException { return null; } /* * (non-Javadoc) * * @see java.sql.ResultSet#getBlob(java.lang.String) */ public Blob getBlob(String colName) throws SQLException { return null; } /* * (non-Javadoc) * * @see java.sql.ResultSet#getBoolean(int) */ public boolean getBoolean(int columnIndex) throws SQLException { return rs.getBoolean(columnIndex); } /* * (non-Javadoc) * * @see java.sql.ResultSet#getBoolean(java.lang.String) */ public boolean getBoolean(String columnName) throws SQLException { return rs.getBoolean(columnName); } /* * (non-Javadoc) * * @see java.sql.ResultSet#getByte(int) */ public byte getByte(int columnIndex) throws SQLException { return 0; } /* * (non-Javadoc) * * @see java.sql.ResultSet#getByte(java.lang.String) */ public byte getByte(String columnName) throws SQLException { return 0; } /* * (non-Javadoc) * * @see java.sql.ResultSet#getBytes(int) */ public byte[] getBytes(int columnIndex) throws SQLException { return null; } /* * (non-Javadoc) * * @see java.sql.ResultSet#getBytes(java.lang.String) */ public byte[] getBytes(String columnName) throws SQLException { return null; } /* * (non-Javadoc) * * @see java.sql.ResultSet#getCharacterStream(int) */ public Reader getCharacterStream(int columnIndex) throws SQLException { return null; } /* * (non-Javadoc) * * @see java.sql.ResultSet#getCharacterStream(java.lang.String) */ public Reader getCharacterStream(String columnName) throws SQLException { return null; } /* * (non-Javadoc) * * @see java.sql.ResultSet#getClob(int) */ public Clob getClob(int i) throws SQLException { return null; } /* * (non-Javadoc) * * @see java.sql.ResultSet#getClob(java.lang.String) */ public Clob getClob(String colName) throws SQLException { return null; } /* * (non-Javadoc) * * @see java.sql.ResultSet#getConcurrency() */ public int getConcurrency() throws SQLException { return 0; } /* * (non-Javadoc) * * @see java.sql.ResultSet#getCursorName() */ public String getCursorName() throws SQLException { return null; } /* * (non-Javadoc) * * @see java.sql.ResultSet#getDate(int) */ public Date getDate(int columnIndex) throws SQLException { return null; } /* * (non-Javadoc) * * @see java.sql.ResultSet#getDate(java.lang.String) */ public Date getDate(String columnName) throws SQLException { return null; } /* * (non-Javadoc) * * @see java.sql.ResultSet#getDate(int, java.util.Calendar) */ public Date getDate(int columnIndex, Calendar cal) throws SQLException { return null; } /* * (non-Javadoc) * * @see java.sql.ResultSet#getDate(java.lang.String, java.util.Calendar) */ public Date getDate(String columnName, Calendar cal) throws SQLException { return null; } /* * (non-Javadoc) * * @see java.sql.ResultSet#getDouble(int) */ public double getDouble(int columnIndex) throws SQLException { return 0; } /* * (non-Javadoc) * * @see java.sql.ResultSet#getDouble(java.lang.String) */ public double getDouble(String columnName) throws SQLException { return 0; } /* * (non-Javadoc) * * @see java.sql.ResultSet#getFetchDirection() */ public int getFetchDirection() throws SQLException { return 0; } /* * (non-Javadoc) * * @see java.sql.ResultSet#getFetchSize() */ public int getFetchSize() throws SQLException { return rs.getFetchSize(); } /* * (non-Javadoc) * * @see java.sql.ResultSet#getFloat(int) */ public float getFloat(int columnIndex) throws SQLException { return rs.getFloat(columnIndex); } /* * (non-Javadoc) * * @see java.sql.ResultSet#getFloat(java.lang.String) */ public float getFloat(String columnName) throws SQLException { return rs.getFloat(columnName); } /* * (non-Javadoc) * * @see java.sql.ResultSet#getInt(int) */ public int getInt(int columnIndex) throws SQLException { return rs.getInt(columnIndex); } /* * (non-Javadoc) * * @see java.sql.ResultSet#getInt(java.lang.String) */ public int getInt(String columnName) throws SQLException { return rs.getInt(columnName); } /* * (non-Javadoc) * * @see java.sql.ResultSet#getLong(int) */ public long getLong(int columnIndex) throws SQLException { return rs.getLong(columnIndex); } /* * (non-Javadoc) * * @see java.sql.ResultSet#getLong(java.lang.String) */ public long getLong(String columnName) throws SQLException { return rs.getLong(columnName); } /* * (non-Javadoc) * * @see java.sql.ResultSet#getMetaData() */ public ResultSetMetaData getMetaData() throws SQLException { return rs.getMetaData(); } /* * (non-Javadoc) * * @see java.sql.ResultSet#getObject(int) */ public Object getObject(int columnIndex) throws SQLException { return rs.getObject(columnIndex); } /* * (non-Javadoc) * * @see java.sql.ResultSet#getObject(java.lang.String) */ public Object getObject(String columnName) throws SQLException { return rs.getObject(columnName); } /* * (non-Javadoc) * * @see java.sql.ResultSet#getObject(int, java.util.Map) */ public Object getObject(int i, Map<String, Class<?>> map) throws SQLException { return rs.getObject(i, map); } /* * (non-Javadoc) * * @see java.sql.ResultSet#getObject(java.lang.String, java.util.Map) */ public Object getObject(String colName, Map<String, Class<?>> map) throws SQLException { return rs.getObject(colName, map); } /* * (non-Javadoc) * * @see java.sql.ResultSet#getRef(int) */ public Ref getRef(int i) throws SQLException { return null; } /* * (non-Javadoc) * * @see java.sql.ResultSet#getRef(java.lang.String) */ public Ref getRef(String colName) throws SQLException { return null; } /* * (non-Javadoc) * * @see java.sql.ResultSet#getRow() */ public int getRow() throws SQLException { return rs.getRow(); } /* * (non-Javadoc) * * @see java.sql.ResultSet#getShort(int) */ public short getShort(int columnIndex) throws SQLException { return rs.getShort(columnIndex); } /* * (non-Javadoc) * * @see java.sql.ResultSet#getShort(java.lang.String) */ public short getShort(String columnName) throws SQLException { return rs.getShort(columnName); } /* * (non-Javadoc) * * @see java.sql.ResultSet#getStatement() */ public Statement getStatement() throws SQLException { return rs.getStatement(); } /* * (non-Javadoc) * * @see java.sql.ResultSet#getString(int) */ public String getString(int columnIndex) throws SQLException { return rs.getString(columnIndex); } /* * (non-Javadoc) * * @see java.sql.ResultSet#getString(java.lang.String) */ public String getString(String columnName) throws SQLException { try { return rs.getString(columnName); } catch (SQLException e) { e.printStackTrace(); throw new SQLException(e.toString() + " columnName " + columnName + " SQL "); } } /* * (non-Javadoc) * * @see java.sql.ResultSet#getTime(int) */ public Time getTime(int columnIndex) throws SQLException { return null; } /* * (non-Javadoc) * * @see java.sql.ResultSet#getTime(java.lang.String) */ public Time getTime(String columnName) throws SQLException { return null; } /* * (non-Javadoc) * * @see java.sql.ResultSet#getTime(int, java.util.Calendar) */ public Time getTime(int columnIndex, Calendar cal) throws SQLException { return null; } /* * (non-Javadoc) * * @see java.sql.ResultSet#getTime(java.lang.String, java.util.Calendar) */ public Time getTime(String columnName, Calendar cal) throws SQLException { return null; } /* * (non-Javadoc) * * @see java.sql.ResultSet#getTimestamp(int) */ public Timestamp getTimestamp(int columnIndex) throws SQLException { return null; } /* * (non-Javadoc) * * @see java.sql.ResultSet#getTimestamp(java.lang.String) */ public Timestamp getTimestamp(String columnName) throws SQLException { return null; } /* * (non-Javadoc) * * @see java.sql.ResultSet#getTimestamp(int, java.util.Calendar) */ public Timestamp getTimestamp(int columnIndex, Calendar cal) throws SQLException { return null; } /* * (non-Javadoc) * * @see java.sql.ResultSet#getTimestamp(java.lang.String, * java.util.Calendar) */ public Timestamp getTimestamp(String columnName, Calendar cal) throws SQLException { return null; } /* * (non-Javadoc) * * @see java.sql.ResultSet#getType() */ public int getType() throws SQLException { return 0; } /* * (non-Javadoc) * * @see java.sql.ResultSet#getURL(int) */ public URL getURL(int columnIndex) throws SQLException { return null; } /* * (non-Javadoc) * * @see java.sql.ResultSet#getURL(java.lang.String) */ public URL getURL(String columnName) throws SQLException { return null; } /* * (non-Javadoc) * * @see java.sql.ResultSet#getUnicodeStream(int) */ public InputStream getUnicodeStream(int columnIndex) throws SQLException { return null; } /* * (non-Javadoc) * * @see java.sql.ResultSet#getUnicodeStream(java.lang.String) */ public InputStream getUnicodeStream(String columnName) throws SQLException { return null; } /* * (non-Javadoc) * * @see java.sql.ResultSet#getWarnings() */ public SQLWarning getWarnings() throws SQLException { return rs.getWarnings(); } /* * (non-Javadoc) * * @see java.sql.ResultSet#insertRow() */ public void insertRow() throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#isAfterLast() */ public boolean isAfterLast() throws SQLException { return rs.isAfterLast(); } /* * (non-Javadoc) * * @see java.sql.ResultSet#isBeforeFirst() */ public boolean isBeforeFirst() throws SQLException { return rs.isBeforeFirst(); } /* * (non-Javadoc) * * @see java.sql.ResultSet#isFirst() */ public boolean isFirst() throws SQLException { return rs.isFirst(); } /* * (non-Javadoc) * * @see java.sql.ResultSet#isLast() */ public boolean isLast() throws SQLException { return rs.isLast(); } /* * (non-Javadoc) * * @see java.sql.ResultSet#last() */ public boolean last() throws SQLException { return rs.last(); } /* * (non-Javadoc) * * @see java.sql.ResultSet#moveToCurrentRow() */ public void moveToCurrentRow() throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#moveToInsertRow() */ public void moveToInsertRow() throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#next() */ public boolean next() throws SQLException { return rs.next(); } /* * (non-Javadoc) * * @see java.sql.ResultSet#previous() */ public boolean previous() throws SQLException { return rs.previous(); } /* * (non-Javadoc) * * @see java.sql.ResultSet#refreshRow() */ public void refreshRow() throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#relative(int) */ public boolean relative(int rows) throws SQLException { return false; } /* * (non-Javadoc) * * @see java.sql.ResultSet#rowDeleted() */ public boolean rowDeleted() throws SQLException { return false; } /* * (non-Javadoc) * * @see java.sql.ResultSet#rowInserted() */ public boolean rowInserted() throws SQLException { return false; } /* * (non-Javadoc) * * @see java.sql.ResultSet#rowUpdated() */ public boolean rowUpdated() throws SQLException { return false; } /* * (non-Javadoc) * * @see java.sql.ResultSet#setFetchDirection(int) */ public void setFetchDirection(int direction) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#setFetchSize(int) */ public void setFetchSize(int rows) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateArray(int, java.sql.Array) */ public void updateArray(int columnIndex, Array x) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateArray(java.lang.String, java.sql.Array) */ public void updateArray(String columnName, Array x) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateAsciiStream(int, java.io.InputStream, int) */ public void updateAsciiStream(int columnIndex, InputStream x, int length) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateAsciiStream(java.lang.String, * java.io.InputStream, int) */ public void updateAsciiStream(String columnName, InputStream x, int length) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateBigDecimal(int, java.math.BigDecimal) */ public void updateBigDecimal(int columnIndex, BigDecimal x) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateBigDecimal(java.lang.String, * java.math.BigDecimal) */ public void updateBigDecimal(String columnName, BigDecimal x) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateBinaryStream(int, java.io.InputStream, int) */ public void updateBinaryStream(int columnIndex, InputStream x, int length) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateBinaryStream(java.lang.String, * java.io.InputStream, int) */ public void updateBinaryStream(String columnName, InputStream x, int length) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateBlob(int, java.sql.Blob) */ public void updateBlob(int columnIndex, Blob x) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateBlob(java.lang.String, java.sql.Blob) */ public void updateBlob(String columnName, Blob x) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateBoolean(int, boolean) */ public void updateBoolean(int columnIndex, boolean x) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateBoolean(java.lang.String, boolean) */ public void updateBoolean(String columnName, boolean x) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateByte(int, byte) */ public void updateByte(int columnIndex, byte x) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateByte(java.lang.String, byte) */ public void updateByte(String columnName, byte x) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateBytes(int, byte[]) */ public void updateBytes(int columnIndex, byte[] x) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateBytes(java.lang.String, byte[]) */ public void updateBytes(String columnName, byte[] x) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateCharacterStream(int, java.io.Reader, int) */ public void updateCharacterStream(int columnIndex, Reader x, int length) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateCharacterStream(java.lang.String, * java.io.Reader, int) */ public void updateCharacterStream(String columnName, Reader reader, int length) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateClob(int, java.sql.Clob) */ public void updateClob(int columnIndex, Clob x) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateClob(java.lang.String, java.sql.Clob) */ public void updateClob(String columnName, Clob x) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateDate(int, java.sql.Date) */ public void updateDate(int columnIndex, Date x) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateDate(java.lang.String, java.sql.Date) */ public void updateDate(String columnName, Date x) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateDouble(int, double) */ public void updateDouble(int columnIndex, double x) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateDouble(java.lang.String, double) */ public void updateDouble(String columnName, double x) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateFloat(int, float) */ public void updateFloat(int columnIndex, float x) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateFloat(java.lang.String, float) */ public void updateFloat(String columnName, float x) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateInt(int, int) */ public void updateInt(int columnIndex, int x) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateInt(java.lang.String, int) */ public void updateInt(String columnName, int x) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateLong(int, long) */ public void updateLong(int columnIndex, long x) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateLong(java.lang.String, long) */ public void updateLong(String columnName, long x) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateNull(int) */ public void updateNull(int columnIndex) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateNull(java.lang.String) */ public void updateNull(String columnName) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateObject(int, java.lang.Object) */ public void updateObject(int columnIndex, Object x) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateObject(java.lang.String, java.lang.Object) */ public void updateObject(String columnName, Object x) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateObject(int, java.lang.Object, int) */ public void updateObject(int columnIndex, Object x, int scale) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateObject(java.lang.String, java.lang.Object, * int) */ public void updateObject(String columnName, Object x, int scale) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateRef(int, java.sql.Ref) */ public void updateRef(int columnIndex, Ref x) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateRef(java.lang.String, java.sql.Ref) */ public void updateRef(String columnName, Ref x) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateRow() */ public void updateRow() throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateShort(int, short) */ public void updateShort(int columnIndex, short x) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateShort(java.lang.String, short) */ public void updateShort(String columnName, short x) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateString(int, java.lang.String) */ public void updateString(int columnIndex, String x) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateString(java.lang.String, java.lang.String) */ public void updateString(String columnName, String x) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateTime(int, java.sql.Time) */ public void updateTime(int columnIndex, Time x) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateTime(java.lang.String, java.sql.Time) */ public void updateTime(String columnName, Time x) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateTimestamp(int, java.sql.Timestamp) */ public void updateTimestamp(int columnIndex, Timestamp x) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#updateTimestamp(java.lang.String, * java.sql.Timestamp) */ public void updateTimestamp(String columnName, Timestamp x) throws SQLException { } /* * (non-Javadoc) * * @see java.sql.ResultSet#wasNull() */ public boolean wasNull() throws SQLException { return false; } protected ResultSet rs = null ; protected int rowsCount = 0 ; protected int pageSize = 0 ; protected int curPage = 0 ; protected String command = "" ; }
超长,哈,好多方法没有实现...其实实现类都是用的ResultSet来处理,还是交给了jdbc来处理,我们只要把得到的东西 "代理"一下即可.
jsp页面
index.jsp
<%@ page contentType="text/html; charset=utf-8"%> <%@ page import="java.sql.*"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="jdbc page test"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <% String driver = "com.mysql.jdbc.Driver"; String url="jdbc:mysql://localhost/test?characterEncoding=UTF-8&useUnicode=true"; String username = "root"; String password = "root"; Class.forName(driver); Connection conn = DriverManager.getConnection(url,username,password); Statement stm = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); Statement stmcount = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); ResultSet rs = null; ResultSet rscount = null; String selectSql = "select * from data order by id desc"; String countSql = "select count(*) from data"; rs = stm.executeQuery(selectSql); rscount = stmcount .executeQuery(countSql); int pageSize = 20; int rowCount = 0; while(rscount.next()) rowCount = rscount.getInt(1 ); int pageCount; int curPage; String strPage = request.getParameter("page"); curPage = strPage == null ? 1 : Integer.parseInt(strPage) ; curPage = curPage <1 ? 1 :curPage; pageCount = (rowCount + pageSize -1)/pageSize; curPage = curPage > pageCount ? pageCount : curPage; int thePage = (curPage - 1) * pageSize; int n = 0; rs.absolute(thePage + 1 ); %> <table border="1" bgcolor="gray"> <tr> <td align="center">NO.</td> <td align="center">ID</td> <td align="center">title</td> <td align="center">content</td> <td align="center">create_time</td> </tr> <% while(n < pageSize && !rs.isAfterLast()){ %> <tr> <td align="center"> <%=((curPage-1)*pageSize)+(n+1)%> </td> <td align="center"> <%= rs.getInt("id")%> </td> <td align="center"> <%=rs.getString("title")%> </td> <td> <%=rs.getString("content")%> </td> <td> <%=rs.getString("create_time")%> </td></tr> <% rs.next(); n++; } %> </table> <p> <center> 第<%=curPage%>页 共<%=pageCount%>页 共<%=rowCount%>条 <%if(curPage>1){%><a href="index.jsp">首页</a><%}%> <%if(curPage>1){%><a href="index.jsp?page=<%=curPage-1%>">上一页</a><%}%> <%if(curPage<pageCount){%><a href="index.jsp?page=<%=curPage+1%>">下一页</a><%}%> <%if(pageCount>1){%><a href="index.jsp?page=<%=pageCount%>">尾页</a><%}%> </center> </body> </html>
评论
5 楼
hallywang
2008-07-21
如果是oracle,还是用rownum来控制比较好
4 楼
laserdance
2008-07-21
谢谢两位兄台提醒,确实性能低下,,下次再实现更好的方法.
3 楼
glamey
2008-07-21
分页不可取,你做的针对很少的数据量来进行的分页。
如果是erp或者是cms那就不行了。
如果是erp或者是cms那就不行了。
2 楼
abettor
2008-07-21
每次select都会将结果集里的所有行读到Recordset里,不管是对数据库还是应用程序,都是很可怕的,所以上述方法虽然从功能上实现了分页,但在大数据量的应用中相当不可取。
通过查看Hibernate生成的SQL可以发现,它的分页就具有很高的科学性,它会根据不同的数据库直接在SQL层面生成不同的语句,比如:
对于MySQL,它用limit;对于SQLServer,它用top;对于Oracle,它用rownum……
这种方式,在数据库内部就完成了分页,大家压力都不会很大。
通过查看Hibernate生成的SQL可以发现,它的分页就具有很高的科学性,它会根据不同的数据库直接在SQL层面生成不同的语句,比如:
对于MySQL,它用limit;对于SQLServer,它用top;对于Oracle,它用rownum……
这种方式,在数据库内部就完成了分页,大家压力都不会很大。
1 楼
laserdance
2008-07-20
<% if(rs != null) rs.close(); if(rscount != null) rscount.close(); if(conn != null) conn.close(); if(stm != null) stm.close(); if(stmcount != null) stmcount.close(); %>
补充 ,,jsp页面的资源没有释放.特此补上
发表评论
-
last year log statistics source code download
2009-07-31 16:48 885只提供两天下载,下周一就失效!! -
学习Apache Mina
2009-05-12 14:50 1746Mina的几个重要接口: I ... -
JFreechart V1.0.9 Guide(英文版)
2008-12-31 09:48 3263本人在0day上发现了JFreechart V1.0.9的Gu ... -
Java web 根据url下载文件IE出错,FF正常
2008-12-26 12:39 1924本人在web开发中,导出csv文件时遇到这一问题的,如下 当用 ... -
日志统计平台3之Jfreechart显示篇
2008-12-19 16:15 1571jfreechart功能十分强大了,在我们平台中用到了柱图和曲 ... -
日志统计平台2
2008-12-19 15:41 1377ImportTask里面我们就实现了ftp下载日志文件,然后批 ... -
日志统计平台
2008-12-19 14:12 1507这是一个商用的项目,是给XX证券用的.其实现的功能是,将各个服 ... -
(随时添加更新)本人code中积累或总结
2008-11-25 09:43 12611 一定要注意资源使用以后要释放,比如数据库的连接,流的使用, ... -
StringBuilder StringBuffer and "+"
2008-10-16 17:20 2073String字符串是Java中最常用的数据结构. " ... -
再用Maven2
2008-09-24 16:35 1603上次用Maven只是别人搭建好的工程,我们使用,今天项目不多, ... -
今天公司培训Scrum有感
2008-09-23 22:24 2612据说Scrum是一种敏捷的灵活的软件管理过程.你可以用它来迭代 ... -
定时执行调度任务
2008-07-21 15:36 2220这里我们用JDK 5.0里的ScheduledExecutor ... -
IntrospectorCleanupListener 简介
2008-05-22 19:12 3482org.springframework.web.util.In ... -
java 读取dbf文件
2008-04-11 13:52 6159先来定义dbf文件的格式,先来定义dbfheader,impo ... -
*.sql的导入与导出
2008-01-24 09:49 984导出:x:\mysql\bin\mysqldump --dat ... -
java程序打开指定的网址
2008-01-24 09:43 16172007-04-19 13:57:42 import j ... -
tomcat5.0.*迁移Tomcat5.5.*的问题:jsp页面显示空白
2008-01-24 09:39 32422007-05-09 12:51:19 本机环境:Win ... -
在Tomcat中添加支持3GP/MP4格式文件的下载
2008-01-24 09:37 13763近日在工作中遇到3gp和mp4格式的文件问题。我用Nokia3 ... -
MySQL常用命令
2008-01-24 09:35 11352007-06-13 20:37:22 1.连接M ... -
Core Java:java除法中保持小数点位数的两种方法
2008-01-24 09:31 6399Method One: (double)(Mat ...
相关推荐
jdbc分页查询,利用mysql的limit实现分页查询。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。...
**JDBC分页详解** 在数据库操作中,分页是一种非常常见的需求,它允许用户以较小的数据量逐步浏览大量的数据,提高用户体验并减轻服务器压力。本文将深入探讨JDBC(Java Database Connectivity)如何实现分页查询,...
在Java开发中,JDBC(Java Database ...总的来说,JDBC分页查询是Java数据库操作中的常见需求,通过合理设计和优化,可以有效提升应用的性能和用户体验。给定的源码应当提供了具体的实现细节,供开发者参考学习。
标题中的“jdbc分页实例sqlserver2000”指的是使用Java Database Connectivity (JDBC) API来实现数据库分页查询的示例,特别是在SQL Server 2000这个特定的数据库管理系统上。JDBC是Java中用于与各种类型数据库交互...
**JSP与JDBC分页实现详解** 在Java Web开发中,数据的分页展示是一项常见且重要的功能,尤其在处理大量数据时,分页能够有效地提高用户体验,避免一次性加载过多数据导致页面响应慢。本篇文章将围绕"JSP与JDBC分页...
### JDBC分页SQL语句详解 #### 一、引言 在数据库操作中,分页查询是非常常见且重要的一个功能。对于大型应用而言,一次性加载大量数据不仅会消耗过多资源,还可能导致用户体验下降。因此,合理地进行分页处理显得...
在JavaWeb开发中,"JavaWeb+JSP+Servlet+JDBC分页查询和查询后分页界面优化"是一个常见的需求,特别是在构建大型的、数据密集型的学生管理系统中。这个主题涵盖了许多关键知识点,让我们逐一深入探讨。 首先,...
本篇将详细介绍如何基于原生的MySQL JDBC实现一个简单的分页组件,这对于初学者理解数据库操作和分页原理非常有帮助。 1. **JDBC基础**: JDBC是Java访问数据库的标准接口,它提供了连接数据库、执行SQL语句、处理...
Java JDBC分页是一种在Java应用程序中实现数据库查询结果分页显示的技术。JDBC(Java Database Connectivity)是Java语言中用来规范客户端程序如何访问数据库的应用程序接口,提供了诸如连接数据库、发送SQL语句以及...
项目主体结构是dao+db+filter+pojo+servlet, 使用技术Servlet转发,代码中有注释帮助学者理解,数据库为MySQL资源...实现的数据库内容分页,查询分页,对初学者难点是根据get请求的中的url地址进行查询后的分页效果。
在这个"jdbc分页demo"中,主要涵盖了JDBC连接数据库、预编译SQL、执行查询、处理结果集以及在JSP页面上展示数据等步骤。通过这个例子,开发者可以了解如何在实际项目中实现基于JDBC的分页查询,提升Web应用的性能和...
这里我们将深入探讨“分页大全”,包括JDBC分页、Struts分页以及分页标签的使用。 首先,让我们了解什么是分页。在网页或应用中,分页是指将大量数据分割成若干小部分,每次只加载一部分,用户可以逐页浏览,而不是...
Oracle JDBC分页实现是数据库操作中的一个重要环节,尤其是在处理大量数据时,为了提高用户体验和系统性能,分页查询显得尤为重要。Oracle数据库提供了多种方法来实现分页查询,其中包括使用ROWNUM伪列、游标...
Java JDBC 分页查询是数据库操作中的常见需求,用于在大量数据中实现高效的页面导航。...这个例子对于初学者理解JDBC分页查询和数据源管理非常有帮助,同时也提醒我们在实际开发中应关注代码的可扩展性和复用性。
jdbc数据库通用分页方法,用时只须传值即可
一个用于支持JDBC分页的工具包,提供了一些封装好的JDBC操作方法,方便开发人员进行开发,提供了此工具包的API文档
高性能jdbc分页处理,使用PreparedStatement方式
java jdbc 分页工具类,以及返回集合数据的封装, private int limit = 10;//每页的个数 /** * 当前页 */ private int page; // /** * 总行数 */ private int totalRows; // /** * 总页数 */ private ...
总结来说,面向对象的Java JDBC分页查询涉及到创建Page类来存储分页信息,构造Oracle兼容的SQL语句,以及使用PreparedStatement执行查询。在实际开发中,我们还需要关注性能优化、异常处理和代码的可维护性,确保...
"JDBC分页 absolute实现" 主要指的是使用`Statement`或`PreparedStatement`对象的`absolute()`方法来实现数据库查询的分页功能。 在传统的SQL查询中,分页通常通过`LIMIT`和`OFFSET`子句来实现,但这在大型数据集上...