2014-02-26 81 views
0

在這段代碼中,我使用sql查詢和JDBC從兩個表中獲取數據。現在你可以看到查詢的結果在rs裏面了。 我現在想要的是我想檢查每個記錄(從它來自哪個表,並根據它寫一些html並打印所有記錄)。 任何人都可以告訴我如何檢查其中的每個記錄?如何使用jdbc和sql查詢編寫條件?

例如:

如果第一個記錄是從博客表來的話,我想打印的博客的標題,並給予一定的鏈接。

如果記錄是來自問題表,那麼我想打印問題和問題的所有答案。

希望你明白了嗎?

代碼:

Statement stmt=null; 
      DBconnection db=new DBconnection(); 
      Connection con=db.dbConn(); 
      try{ 
      stmt = con.createStatement(); 


      ResultSet rs = stmt.executeQuery("select description , user ,title , date from(select blog_description as description ,users as user,blog_title as title ,created_date as date from blog union select ask_question as description ,users as user ,ask_question as title , created_on as date from askquestions) as aa order by date desc"); 

      while(rs.next()) 
      { 

        System.out.println("this is data regarding sql query==="+rs.getString(2));  

        retstr+="<table><tr>"; 
        retstr+="<td style='width:725px; font-size:14px; font-family:Palatino Linotype; color:#1147a9'>"+rs.getString(2)+"&nbsp;:&nbsp; shared a new Note.</td>"; 
        retstr+="</tr></table><br/> "; 

        retstr+="<li style=' font-size:12px;'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Title : "+rs.getString(3)+"<span style='font-size:10px; color:#ccc; '>&nbsp;&nbsp;"+rs.getString(4)+"</span></li> <br/> "; 

        retstr+="<table><tr>"; 
        retstr+="<td style='width:30px;'></td><td style='width:725px; color:#1147a9; border-bottom : 2px dotted #ccc; margin-bottom: 10px; font-size:11px; font-family:Palatino Linotype; margin-bottom:20px;'>Description : "+rs.getString(1)+"<a style='font-size:12px; font family:Palatino Linotype; color:#007fc0; margin-bottom:20px;' href='blogs.jsp'>&nbsp;&nbsp;Read More..</a></td>";    
        retstr+="</tr></table>"; 
      } 
+1

你是什麼意思「如何檢查每個記錄」嗎?您已經遍歷結果集中的行 - 只需使用rs.getXXX方法獲取值並在比較中使用這些值即可。 –

+0

@Aleks例如: \t \t \t \t如果第一個記錄是從博客表來的話,我想打印的博客的標題,並給予一定的鏈接。 \t \t \t \t如果記錄來自問題表,那麼我想打印問題和問題的所有答案。 \t \t \t \t希望你明白了嗎? – User2413

+1

對我來說,就像你不想解僱一個查詢一樣,但是因爲你想保留結果而不是將它們扔在一大堆上,所以兩個單獨的查詢是不同的。你可以選擇一個額外的列,'源'或其他東西,在其中你堅持一個值來標識記錄來自哪裏。選擇'博客'AS來源。 – Gimby

回答

0

添加一個多列,將給予在源表中的信息爲每一行:

SELECT description, USER, title, date from, source 
    (SELECT blog_description AS description, 
      users AS USER, 
      blog_title AS title, 
      created_date AS date, 
      'blog' as source 
    FROM blog 

    UNION 

    SELECT ask_question AS description, 
      users AS USER, 
      ask_question AS title, 
      created_on AS date, 
     'askquestions' as source 
    FROM askquestions 
) AS aa 
ORDER BY date DESC 
+0

查詢工作不正常...我叮叮噹這個查詢中有錯誤.. – User2413

+0

@SalmanAmaan如果查詢有錯誤,那麼你確實看到錯誤是什麼 - 嘗試自己修復它們。 –

+0

@SalmanAmaan:不工作意味着,你是否得到一個空的結果集? –