gpt4 book ai didi

java - 如何在java中正确地从数据库中检索数据

转载 作者:行者123 更新时间:2023-11-29 03:50:37 26 4
gpt4 key购买 nike

我写这段代码是为了显示拥有最高薪水的员工的姓名但是当输出不正确时,它显示为 null 而不是“mmm kkk”!!虽然我填满了表格,但这是内容:

HERE

这是我的代码,谁能帮帮我?? :(

 public static void displayMaxSalary() throws ClassNotFoundException, SQLException

{
int size=0;
int count=0;
String maxSalary=null;
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/task4DB?"
+ "user=root&password=123");
PreparedStatement st = con.prepareStatement("select * from task4Table ");
ResultSet r1=st.executeQuery();

while (r1.next()) {

size++;
}


int salaries[]=new int[size];
String Names[]=new String[size];

while (r1.next()) {


salaries[count]= r1.getInt("salary");
Names[count]= r1.getString("fName")+""+r1.getString("lName");
count++;
}

for(int i=1;i< salaries.length;i++)

{
if(salaries[i]>salaries[i-1])
{
maxSalary= Names[i];
}

}


System.out.println("The name of employee who has the higher salary is :");
System.out.println( maxSalary);



} //end-displayMaxSalary.

最佳答案

试试这个 SQL 语句:

select fName, max(salary) from task4table

你的代码有问题:

在此循环中,您迭代到结果集的末尾:

while (r1.next()) {
size++;
}

然后,当你想再次迭代时

while (r1.next()) {
salaries[count]= r1.getInt("salary");
Names[count]= r1.getString("fName")+""+r1.getString("lName");
count++;
}

r1.next() 返回 false 因此不会发生此迭代。您要么在一个循环中执行,要么再次执行查询。但是,正如我所说,使用 max 对其进行适当的 sql 语句。

关于java - 如何在java中正确地从数据库中检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17188114/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com