2016-06-24 7 views
1

Ich habe Tisch wie this-Put-Reihen mit dem gleichen Namen zusammen

fnumber|fstatus|department|date&time 
f1  out  d1   a 
f2  out  d2   b 
f1  in  d3   c 
f1  out  d3   d 
f2  in  d1   e 
f1  in  d1   f 
f2  out  d1   g 
f2  in  d2   h 

Gibt es eine Möglichkeit, dass gleiche fnumber werden automatisch zusammen und nach Datum und Zeit angeordnet wird (von alt zu neu) wie this-

fnumber|fstatus|department|date&time 
    f1  out  d1   a 
    f1  in  d3   c 
    f1  out  d3   d 
    f1  in  d1   f 
    f2  out  d2   b 
    f2  in  d1   e  
    f2  out  d1   g 
    f2  in  d2   h 

jetzt bin ich mit Servlets und jSP für einfach den Wert einfügen, aber ich möchte, dass sie wie oben angeordnet werden (Angenommen, ich f1 dann f2 dann f3 jetzt einfügen, wenn f1 wieder eingeführt wird, ich will es eingefügt werden zwischen f1 und f2 nicht nach f3 Ist etwas wa Ich könnte das tun.

fileStatus.jsp Dies ist die Datei, in die der Benutzer den Wert sendet.

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<%@ page import ="java.sql.*" %> 
<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title>File Status Page</title> 
    <style> 
header { 
background-color:teal; 
color:white; 
text-align:center; 
padding:30px; 
} 

section { 
width:350px; 
float:left; 
padding:150px; 
} 
footer { 
background-color:black; 
color:white; 
clear:both; 
text-align:center; 
padding:5px; 
} 
</style> 
</head> 
<body style="background-color:lightsteelblue;"> 
    <% 
String userName = null; 
String sessionID = null; 
Cookie[] cookies = request.getCookies(); 
if(cookies !=null){ 
for(Cookie cookie : cookies){ 
if(cookie.getName().equals("admin")) userName = cookie.getValue(); 
} 
} 
%> 
<header> 
<h3>Hi <%=userName %></h3> 
</header> 
<a href="create.jsp"><font color="black">back</font></a> 
<form action=" LogoutServlet" method="post"> 
<input type="submit" value="Logout" > 
</form> 
<section> 
<h3>Change Status</h3> 
<form action="statusServlet" method="post"> 
<table> 
    <tbody> 
     <tr> 
      <td> 
    File Number :<select name="files"> 
       <% 
    try{ 
String sql="select * from files"; 
Class.forName("com.mysql.jdbc.Driver"); 
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/login", 
     "root", "root"); 
Statement st = con.createStatement(); 
ResultSet rs=st.executeQuery(sql); 
while(rs.next()){ 
%>       
    <option value="<%=rs.getString("fileno")%>"><%=rs.getString("fileno")%></option> 
<%} 
rs.close(); 
st.close(); 
con.close(); 
}catch(Exception e){ 
e.printStackTrace(); 
} 
%> 
     </select></td> 
     </tr> 
     <tr> 
      <td> 
File Department :<select name="departments"> 
      <% 
    try{ 
String sql="select * from department"; 
Class.forName("com.mysql.jdbc.Driver"); 
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/login", 
     "root", "root"); 
Statement st = con.createStatement(); 
ResultSet rs=st.executeQuery(sql); 
while(rs.next()){ 
%>       
    <option value="<%=rs.getString("departmentname")%>"><%=rs.getString("departmentname")%></option> 
<%} 
rs.close(); 
st.close(); 
con.close(); 
}catch(Exception e){ 
e.printStackTrace(); 
} 
%> 
    </select></td> 
     </tr> 
     <tr> 
      <td> 
    File Status :<select name="input"> 
      <option>IN</option> 
      <option>OUT</option> 
     </select></td> 
     </tr> 
     <tr> 
      <td> 
       <input type="submit" value="submit" name="submit" /> 
      </td> 
     </tr> 

</tbody> 
</table> 
    </form> 
</section> 
<footer> 
Copyright example. All right reserved.        
</footer> 
</body> 
</html> 

stausServlet.java In diesem verwende ich SQL-Abfrage, um die Daten einzufügen.

package bean; 

import java.io.IOException; 
import java.io.PrintWriter; 
import java.sql.Connection; 
import java.sql.PreparedStatement; 
import javax.servlet.RequestDispatcher; 
import javax.servlet.ServletException; 
import javax.servlet.http.Cookie; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import javax.servlet.http.HttpSession; 

public class statusServlet extends HttpServlet { 

@Override 
protected void doPost(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    Cookie[] cookies = request.getCookies(); 
    if(cookies != null){ 
    for(Cookie cookie : cookies){ 
     if(cookie.getName().equals("JSESSIONID")){ 
      System.out.println("JSESSIONID="+cookie.getValue()); 
      break; 
     } 
    } 
    }  
    HttpSession session = request.getSession(false); 
    System.out.println("admin="+session.getAttribute("admin")); 
    if(session!=null && session.getAttribute("admin") != null){ 
       String user=(String)session.getAttribute("admin"); 
       boolean status=false; 
    try{ 
     String fno=request.getParameter("files"); 
     String departments=request.getParameter("departments"); 
     String input=request.getParameter("input"); 

     Connection con=ConnectionProvider.getCon(); 

     String sql="insert into status(fnumber,fstatus,department) values (?,?,?)"; 
     PreparedStatement pstmt =con.prepareStatement(sql); 

     pstmt.setString(1,fno); 
     pstmt.setString(2,input); 
     pstmt.setString(3,departments); 

     int rs=pstmt.executeUpdate(); 
     if(rs>0){status=true;} 

    }catch(Exception e){} 
       if(status){ 
       response.sendRedirect("fileStatus.jsp"); 
       PrintWriter out= response.getWriter(); 
       out.println("Values have been inserted,"+user); 
       //out.flush(); 
       } 
       else 
       { 
        PrintWriter out= response.getWriter(); 
        out.println("failed"); 
        response.sendRedirect("create.jsp"); 
       } 

       }else{ 
    RequestDispatcher rd = getServletContext().getRequestDispatcher("/index.html"); 
    PrintWriter out= response.getWriter(); 
    out.println("<font color=red>Either user name or password is wrong.</font>"); 
    rd.include(request, response); 
    } 

} 

} 
+2

Sie können sortieren, während Sie die Daten abfragen. – 4J41

+0

'String sql = "Wählen Sie * aus der Abteilung"; 'sollte'String sql = "sein * aus der Abteilung auswählen ORDER BY fnumber asc;";' und Ihre Tabelle ist geordnet. "Zwischen Werte einfügen" ist nichts, was jemand tut. – mondjunge

Antwort

1

Wenn Sie SQL verwenden, um Ihre Daten zu erhalten, sollten Sie die Order By-Klausel verwenden.

Wenn Sie eine Java-Liste verwenden, können Sie die Liste sortieren, indem Sie einen Comparator verwenden, siehe zum Beispiel https://stackoverflow.com/a/18441978/3543153

+0

Ich habe die Frage bearbeitet –

+0

ich verstehe nicht wirklich ... Die Daten, die Sie am Anfang Ihrer Frage angezeigt werden, sind die Daten in der Tabelle Ihrer Datenbank? Oder ist es die Ansicht, die Sie in einer JSP-Datei erwarten? – DamienB

+0

Es sind die Daten in der Tabelle in meiner Datenbank –

Verwandte Themen