简体   繁体   English

jdbc 如何打印多个查询

[英]How to print multiple queries jdbc

I have a program that probes a database and prints a report of some queries.我有一个程序可以探测数据库并打印一些查询的报告。 I'd like to print Department name on one line with the employee running it with all subsequent projects underneath it like so:我想在一行上打印部门名称,并与运行它的员工及其下面的所有后续项目一起打印,如下所示:

Administration – Jennifer S. Wallace管理 – Jennifer S. Wallace
Computerization电脑化
Newbenefits新福利
Headquarters – James E. Borg总部 – James E. Borg
Reorganization重组
Research – Franklin T. Wong研究 – Franklin T. Wong
ProductX产品X
ProductY产品Y
ProductZ产品Z

But the way I have it prints:但是我打印的方式是:

Administration Wallace S. Jennifer Computerization管理 Wallace S. Jennifer 计算机化
Administration Wallace S. Jennifer Newbenefits管理 Wallace S. Jennifer 新福利
Headquarters Borg E. James Reorganization总部 Borg E. James 重组
Research Wong T. Franklin ProductX Research Wong T. Franklin ProductX
Research Wong T. Franklin ProductY Research Wong T. Franklin ProductY
Research Wong T. Franklin ProductZ Research Wong T. Franklin ProductZ

How Can I fix this?我怎样才能解决这个问题?

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();
      }
   }
}

It's difficult to guess where each column is coming from but I'll take a guess based on the wrong result you posted.很难猜测每一列的来源,但我会根据您发布的错误结果进行猜测。

You can change the "while" section of your code to display the result as you want.您可以更改代码的“while”部分以根据需要显示结果。 It should look like:它应该看起来像:

         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