【问题标题】:How to print multiple queries jdbc如何打印多个查询jdbc
【发布时间】:2021-12-12 07:31:48
【问题描述】:

我有一个程序可以探测数据库并打印一些查询的报告。我想在一行上打印部门名称,让员工在其下运行所有​​后续项目,如下所示:

行政管理——詹妮弗·S·华莱士
电脑化
新福利
总部——詹姆斯·E·博格
重组
研究 – 富兰克林 T. Wong
产品X
产品Y
产品Z

但是我的打印方式:

管理 Wallace S. Jennifer 计算机化
行政华莱士·S·詹妮弗·新福利
总部 Borg E. James 重组
研究 Wong T. Franklin 产品X
研究 Wong T. Franklin 产品Y
研究 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();
      }
   }
}

【问题讨论】:

  • 我强烈建议您使用自 1992 年以来可用的现代连接语法。很难阅读您的查询。

标签: java sql jdbc


【解决方案1】:

很难猜测每列的来源,但我会根据您发布的错误结果进行猜测。

您可以更改代码的“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);        
         }     

【讨论】:

    猜你喜欢
    • 2012-03-15
    • 1970-01-01
    • 1970-01-01
    • 2019-09-25
    • 2014-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多