关于JAVA分页代码和删除数据值的问题高手请进~~~

关于JAVA分页代码和删除数据值的问题高手请进~~~,第1张

听你这么说,必定是你的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怎么实现静态分页技术等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9494120.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存