gpt4 book ai didi

java - 如何读取第一行列中的第二行列值

转载 作者:行者123 更新时间:2023-11-30 01:02:35 25 4
gpt4 key购买 nike

我正在使用显示标签来显示表格,它工作正常,但我有新的要求,“我需要在第一行列中显示第二行列值,在第二行列中显示第三行值......即对我来说,数据以表格格式呈现:

 Sr No.      From Date                   To Date        Duration(hh:mm:ss)  
1 01-Nov-2013 12:17:00 PM 2d 20:23:22
2 04-Nov-2013 09:40:35 AM 01:20:37
3 04-Nov-2013 11:27:21 AM 05:23:35

但是我需要表格数据如下:

Sr No.      From Date                    To Date        Duration(hh:mm:ss)  
1 01-Nov-2013 12:17:00 PM 04-Nov-2013 09:40:35 AM 2d 20:23:22
2 04-Nov-2013 09:40:35 AM 04-Nov-2013 11:27:21 AM 01:20:37
3 04-Nov-2013 11:27:21 AM 4th row 2nd column 05:23:35

谁能帮我解决这个问题我写的详细java代码是这样的StoppageDBReport.jsp:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib uri="http://displaytag.sf.net" prefix="display" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link rel="stylesheet" href="css/displaytag.css" type="text/css">
<link rel="stylesheet" href="css/screen.css" type="text/css">
<link rel="stylesheet" href="css/site.css" type="text/css">
<link href="css/sty.css" rel="stylesheet" type="text/css" />
<link href="css/tabborder.css" rel="stylesheet" type="text/css" />
</head>
<body>


<jsp:include page="Header.jsp" />
<c:choose>
<c:when test="${not empty spdetails}">
<table id="display_table">
<tr ><td><b>Stoppage Details</b></td></tr>
<tr ><td><b><%=request.getParameter("vehicleId") %></b></td></tr>
<tr><td>From &nbsp;<%=session.getAttribute("fromdate") %>&nbsp;to&nbsp;<%=session.getAttribute("startdate") %></td></tr>

</table>
<display:table id="deviceDetailsID" name="sessionScope.spdetailsid" pagesize="10" export="true" sort="list">

<display:setProperty name="basic.empty.showtable" value="true" />
<display:setProperty name="paging.banner.group_size" value="10" />
<display:setProperty name="paging.banner.item_name" value="Record" />
<display:setProperty name="paging.banner.item_names" value="Records" />

<display:column property="serialID" title="Sl No" style="width: 3%"/>
<display:column property="deviceID" title="Device ID" style="width: 1%"/>
<display:column property="timestamp" title="From Date" format="{0,date,dd-MM-yyyy}"/>
<display:column property="timestamp" title="ToDate" />
<display:column property="statuscode" title="Status Code"/>
<display:column property="address" title="Address" />
</display:table>
</c:when>

<c:otherwise>
<jsp:include page="Pages/Stoppagebody.jsp"/>
<div id="MenuLineDiv" style="width:100%; height: 2px; font-size: 2px; background-color: #FFCD44; position: relative; top: 0px;"></div>
<table width="100%" border="1" cellpadding="0" cellspacing="0" bordercolor="#FFFFFF">
<tr class="topheader">
<td colspan="6" style="color:white;text-align:center;">Stoppage report for <%=request.getParameter("vehicleId") %> from <%=session.getAttribute("fromdate") %> to <%=session.getAttribute("startdate") %> </td>
</tr>


<tr class="secondhedr">
<td colspan="6" style="color:white;text-align:center;">No data found</td>
</tr>

</table>
</c:otherwise>
</c:choose>
<jsp:include page="Footer.jsp"/>


</body>
</html>

Dao 对象:

public List<StoppageDetails> getSpDetails(String accountID,String deviceID,String Timestamp1,String Timestamp2) {
Connection con=null;
List<StoppageDetails> spdetails = new ArrayList<StoppageDetails>();
try{


con= DBConnectionFactory.getDBConnection();

String sql="SELECT accountID,deviceID,TIMESTAMP,address FROM eventdata WHERE (TIMESTAMP BETWEEN '"+Timestamp1+"' AND '"+Timestamp2+"') AND accountID='"+accountID+"' AND deviceID='"+deviceID+"'and speedKPH=0.0";
Statement st=con.createStatement();
ResultSet rs=st.executeQuery(sql);
int count=0;
System.out.println("::::"+rs.next());
while (rs.next()){
StoppageDetails ud=new StoppageDetails();
ud.setSerialID(count);
ud.setAccountID(rs.getString(1));
ud.setDeviceID(rs.getString(2));
String stringtimestamp=rs.getString(3);
long l=Long.parseLong(stringtimestamp);
long longtimestamp = l * 1000L;
String datestring= new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(new java.util.Date(longtimestamp));
ud.setTimestamp(datestring);
String address=rs.getString(4);
String address1[]=address.split(" \\d");
ud.setAddress(address1[0]);
spdetails.add(ud);
count++;
}

}catch (Exception e) {
e.printStackTrace();

}
System.out.println(spdetails);
return spdetails;


}

Controller 代码:

protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

try{
response.setContentType("text/html");

HttpSession session=request.getSession(true);

String accountID=(String)session.getAttribute("sessionId");
String deviceID=request.getParameter("vehicleId");
String fromdate=request.getParameter("AnotherDate");
String todate=request.getParameter("ADate");

session.setAttribute("vid",deviceID);
session.setAttribute("fromdate",fromdate);
session.setAttribute("startdate",todate);
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
Date startD = (Date) sdf.parse(fromdate);
Date endD = (Date) sdf.parse(todate);

Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
cal1.setTime(startD);
cal2.setTime(endD);

long timestamp1,timestamp2;
timestamp1=cal1.getTimeInMillis()/1000;
timestamp2=cal2.getTimeInMillis()/1000;
String Timestamp1 = Long.toString(timestamp1);
String Timestamp2 = Long.toString(timestamp2);



UserDAO rdao=new UserDAO();
List<StoppageDetails> spdetails=rdao.getSpDetails(accountID, deviceID, Timestamp1, Timestamp2);

session.setAttribute("spdetailsid", spdetails);
RequestDispatcher rd=request.getRequestDispatcher("StoppageDBReport.jsp");
rd.include(request,response);
return;

}catch (Exception e) {
// TODO: handle exception
}


}

}

Vo 对象:

package com.preva.vo;

public class StoppageDetails {

private String accountID, deviceID,timestamp,address;
private int serialID;
public String getTimestamp() {
return timestamp;
}

public void setTimestamp(String timestamp) {
this.timestamp = timestamp;
}

public int getSerialID() {
return serialID;
}

public void setSerialID(int serialID) {
this.serialID = serialID;
}

public String getAccountID() {
return accountID;
}

public void setAccountID(String accountID) {
this.accountID = accountID;
}

public String getDeviceID() {
return deviceID;
}

public void setDeviceID(String deviceID) {
this.deviceID = deviceID;
}
public String getAddress() {
return address;
}

public void setAddress(String address) {
this.address = address;
}



}

最佳答案

可以在 mysql 中使用自连接来做到这一点,但最简单的解决方案是从 java 内列表中的下一个元素读取该值。

这来自您的 Controller

List<StoppageDetails> spdetails=rdao.getSpDetails(accountID, deviceID, Timestamp1, Timestamp2);
for (int i = 0; i < spdetails.size() - 1; i++) {
StoppageDetails current = spdetails.get(i);
StoppageDetails next = spdetails.get(i+1);
current.setTimestamp2(next.getTimestamp());
}

关于java - 如何读取第一行列中的第二行列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19971872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com