繁体   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