簡體   English   中英

jdbc 如何打印多個查詢

[英]How to print multiple queries jdbc

我有一個程序可以探測數據庫並打印一些查詢的報告。 我想在一行上打印部門名稱,並與運行它的員工及其下面的所有后續項目一起打印,如下所示:

管理 – Jennifer S. Wallace
電腦化
新福利
總部 – James E. Borg
重組
研究 – Franklin T. Wong
產品X
產品Y
產品Z

但是我打印的方式是:

管理 Wallace S. Jennifer 計算機化
管理 Wallace S. Jennifer 新福利
總部 Borg E. James 重組
Research Wong T. Franklin ProductX
Research Wong T. Franklin ProductY
Research Wong T. Franklin ProductZ

我怎樣才能解決這個問題?

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class JDBC{

   public static void main(String[] args){
      String name = "";
      String projects = "";
      
      try{
         Class.forName("com.mysql.cj.jdbc.Driver");
         Connection connection = DriverManager.getConnection("jdbc:mysql://cis-lonsmith- 
student2.ccr8ibhqw8qf.us-east-2.rds.amazonaws.com/COMPANY?useSSL=false", "user", 
"Password");
           
       Statement statement = connection.createStatement();
         ResultSet result = statement.executeQuery("SELECT Dname, Fname, Lname, Minit, 
Pname FROM DEPARTMENT, EMPLOYEE, PROJECT WHERE Mgr_ssn = Ssn AND Dnum = Dnumber GROUP BY 
Pname ORDER BY Dname;");      
      
         while(result.next()){
            
            name = result.getString("Dname") + " - " + result.getString("Lname") + " " + 
result.getString("Minit") + ". " + result.getString("Fname") + " " + 
result.getString("Pname");

            System.out.println(name);        
         }      
      }  
      catch(Exception e){
         e.printStackTrace();
      }
   }
}

很難猜測每一列的來源,但我會根據您發布的錯誤結果進行猜測。

您可以更改代碼的“while”部分以根據需要顯示結果。 它應該看起來像:

         String title = null
         while(result.next()){
            String ltitle = 
            name = result.getString("Dname") + " - " +
              result.getString("Lname") + " " +
              result.getString("Minit") + ". " + 
              result.getString("Fname");
            String pname = result.getString("Pname");
            if (!ltitle.equals(title)) {
              System.out.println(ltitle);
              title = ltitle;
            }
            System.out.println(name);        
         }     

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM