听你这么说,必定是你的sql语句写的有问题,你既然没有贴出代码,我也没办法给你找错,下面针对你的问题的代码, (假设数据库中有张news新闻表)不知道你用的是什么数据库,这里针对的是mysql数据库:
//先针对数据库的news表写一个java bean
import javaioSerializable;
import javasqlDate;
public class news implements Serializable
{
private int news_id;
private String news_title;
private String news_content;
private int news_type_id;
private String pubtime;
public news(int news_id, String news_title, String news_content, int news_type_id, String pubtime) {
super();
thisnews_id = news_id;
thisnews_title = news_title;
thisnews_content = news_content;
thisnews_type_id = news_type_id;
thispubtime = pubtime;
}
public news(){}
public String getNews_content() {
return news_content;
}
public void setNews_content(String news_content) {
thisnews_content = news_content;
}
public int getNews_id() {
return news_id;
}
public void setNews_id(int news_id) {
thisnews_id = news_id;
}
public String getNews_title() {
return news_title;
}
public void setNews_title(String news_title) {
thisnews_title = news_title;
}
public int getNews_type_id() {
return news_type_id;
}
public void setNews_type_id(int news_type_id) {
thisnews_type_id = news_type_id;
}
public String getPubtime() {
return pubtime;
}
public void setPubtime(String pubtime) {
thispubtime = pubtime;
}
}
//再写一个 *** 作数据库的dbo
import javasqlConnection;
import javasqlPreparedStatement;
import javasqlResultSet;
import javautilArrayList;
public class newsDBO {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
public ArrayList getNews(int page_num, int page_count )//分页代码
{
news s=null;
ArrayList list = new ArrayList();
try{
//加载数据库驱动
ClassforName("commysqljdbcDriver");
//获得数据库连接。注:test是数据库名,news表在这个数据库中
conn = DriverManagergetConnection("jdbc:mysql://localhost:3306/test", "root", "root");
String sql="select from news limit " +( page_num-1)page_count +"," + page_count ;
Systemoutprintln(sql);//这是调试用的,可以检验你的sql语句有没有错,错在哪里
ps = connprepareStatement(sql);
rs = psexecuteQuery();
while(rsnext())
{
s=new news();
ssetNews_content(rsgetString("news_content"));
ssetNews_id(rsgetInt("news_id"));
ssetNews_title(rsgetString("news_title"));
ssetNews_type_id(rsgetInt("news_type_id"));
ssetPubtime(rsgetString("pubtime"));
listadd(s);
}
}
catch(Exception e)
{
eprintStackTrace();
}
return list;
}
public boolean delNewsById(int news_id){
boolean flag = true;
try{
conn = DBToolsgetConnection();
String sql = "delete from news where news_id = " + news_id;
ps = connprepareStatement(sql);
Systemoutprintln(sql);//调试代码
//千万别忘了执行!!!不写下面这一句,所有的代码都白写了,根本就没往数据库送!!
psexecute();
catch (Exception e) {
flag = false;
eprintStackTrace();
}
return flag;
}
}
//下面是分页的jsp页面
<%@ page language="java" import="javautil" pageEncoding="gbk"%>
<!-- 把包导入-->
<jsp:directivepage import="dbonewsDBO" />
<jsp:directivepage import="Beansnews" />
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 401 Transitional//EN">
<html>
<head>
<title>My JSP 'newsjsp' starting page</title>
</head>
<body>
<table border="1">
<tr>
<td>新闻序号</td>
<td>新闻标题<</td>
<td>新闻内容</td>
<td>新闻类型</td>
<td>新闻时间</td>
<td>基本 *** 作</td>
</tr>
<%
int page_num = 1;
int page_count = 5;
String num = requestgetParameter("page_num");
if(num != null){
page_num = IntegerparseInt(num);
}
newsDBO nd = new newsDBO();
ArrayList al=ndgetNews(page_num,page_count);
news n=null;
for(int i=0; i < alsize(); i++){
n=(news)alget(i);
%>
<tr>
<td><%=ngetNews_id()%></td>
<td><%=ngetNews_title()%></td>
<td><%=ngetNews_content()%></td>
<td><%=ngetNews_type_id()%></td>
<td><%=ngetPubtime()%></td>
<td><a href="delete_newsjspid=<%=ngetNews_id()%>">删除</a></td>
</tr>
</table>
</body>
</html>
//删除页面deletejsp
<%@ page language="java" pageEncoding="gbk"%>
<jsp:directivepage import="dbonewsDBO"/>
<body>
<%
String sid = requestgetParameter("id");
Systemoutprintln(sid);
int id = IntegerparseInt(sid);
newsDBO dbo = new newsDBO();
dbodelNewsById(id);
%>
</body>
</html>
大概就是这样了,说明下,上面的代码是我从以前做的新闻网站中经修改而来的,但是以前因为做的是一个网站,所以全部代码比较复杂,但是也没必要给你,因为根你的问题没多大关系,为了代码简洁和便于你理解,jsp页面我专门给你写了,就是上面的,希望能解决你的问题,也就算我没白忙,呵呵
对了,如果你的数据库不是mysql,那你可以到网上找一下相应数据库的分页语句,比如oracle,sqlsever等,其实原理是一样的,不过sql语句稍有不同而已所以我这里不再多说了
1、直接使用跨库的多表联合查询。不建议。
2、向6台数据库server均发送一个查询请求,然后对所有查询结果进行汇总,再处理分页逻辑。
3、建立一个总数据库,只负责维护主键和必要的索引,以供分页查询。
4、使用redis维护一个主键序列,分页 *** 作就是截取该序列的一部分,其结果就是主键id集合。拿到id后便可以映射到多台mysql服务器上查询数据了。但毕竟数据被分布式存储了,取到完整结果集必须要多次、多台的数据库访问,这个肯定是避免不了。
注:“多台”数据库访问的问题无解,但同台“多次”数据库访问的问题可以通过程序优化。
通常分页是从数据库中取出时就只取出指定的部分数据,需要其他部分的数据时还需要再与数据库连接,所以是动态的。
而静态分页是通过js之类的客户端代码实现的,数据一次性的从数据库中提出,只是在页面上响应使用者的 *** 作,所以是静态的
1使用T_BASE_PROVINCE表作为测试演示使用
2查询下总共数据量selectcount()fromT_BASE_PROVINCE,在分页的时候,一般会显示总页数,需要先查询总数据量得到总页数,总页数=总量/每页显示记录数。
3前面的测试数据初始化完成之后,查询前20条大概有什么样的数据。
4含orderby排序,多一层嵌套,因为orderby在select之后执行,不在里面写的话可能会出现不是预期的排序结果。
如以上回答未能解决问题请看:
一种是利用相反的。
使用minus,即中文的意思就是减去。
一种是利用Oracle的rownum,这个是Oracle查询自动返回的序号,一般不显示,但是可以通过selectrownumfrom[表名],可以看到,是从1到当前的记录总数。
对ASPnet的数据库表单分页需要写后台代码的,我这不久前刚写了个SQL的分页处理程序,希望能给你启示,原理是一样的,把语句换下就可以了,我对Oracle数据库了解甚少
前台:
<asp:DataList ID="lstProducts" runat="server" EnableViewState="false" DataKeyField="ProductID" RepeatColumns="6" Width="100%">
<ItemTemplate>
<table style="font-size: 10pt;">
<tr><td><a href='ProductDetailsaspxProductID=<%# Eval("ProductID") %>' style="color:#0e0e6c" >
<img alt="更多信息" runat="server" style="border-right: 0px solid; border-top: 0px solid; border-left: 0px solid; border-bottom: 0px solid" src='<%# "readImageaspxSize=ThumbNail&ProductID=" + Eval("ProductID") %>' id="imgThumbnail" /></a>
</td></tr>
<tr><td><%# DataBinderEval(ContainerDataItem, "Color") %></td></tr>
<tr><td><%# DataBinderEval(ContainerDataItem, "Price") %></td></tr>
<tr><td><%# DataBinderEval(ContainerDataItem, "ProductID") %></td></tr>
<tr><td><a href="AddToCartaspxProductID=<%# DataBinderEval(ContainerDataItem, "ProductID") %>">放入购物车</a></td></tr>
</table>
</ItemTemplate>
</asp:DataList>
<div style="font-size:small ; text-align:right">
<asp:HyperLink ID="lnkPrev" runat="server">上一页</asp:HyperLink>
<asp:HyperLink ID="lnkNext" runat="server">下一页</asp:HyperLink>
</div>
后台:
protected void Page_Load(object sender, EventArgs e)
{
int CurrPage = 0;
string sSql = "";
//ResponseWrite("IsPostBack: " + IsPostBackToString());
if (MasterSelectedValue == "")
sSql = "SELECT ProductID, Name, ProductNumber, Color , Price FROM Product";
else
sSql = "SELECT ProductID, Name, ProductNumber, Color , Price FROM Product" + " where ProductSubcategoryID=" + MasterSelectedValue;
//ResponseWrite("<br>"+sSql);
DataSet ds = DataAccessHelperRunQuery(sSql);
PagedDataSource pds = new PagedDataSource();
pdsDataSource = dsTables[0]DefaultView;
pdsAllowPaging = true;
pdsPageSize = 18;
if (IsPostBack)
{
CurrPage = 1;
}
else
{
if (RequestQueryString["Page"] != null)
CurrPage = ConvertToInt32(RequestQueryString["Page"]);
else
CurrPage = 1;
}
pdsCurrentPageIndex = CurrPage - 1;
//lblCurrPageText = "当前页: " + CurrPageToString();
if (CurrPage<pdsPageCount)
{
int NextPage = CurrPage + 1;
lnkNextNavigateUrl = "ProductsaspxPage=" + NextPageToString();
}
if (CurrPage > 1 && CurrPage < pdsPageCount)
{
int PrevPage = CurrPage - 1;
lnkPrevNavigateUrl = "ProductsaspxPage=" + PrevPageToString();
}
lstProductsDataSource = pds;
lstProductsDataBind();
}
以上就是关于关于JAVA分页代码和删除数据值的问题 高手请进~~~全部的内容,包括:关于JAVA分页代码和删除数据值的问题 高手请进~~~、如何对分库后的数据进行分页查询、asp怎么实现静态分页技术等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)