gpt4 book ai didi

java - 我们可以在一种方法中使用准备好的语句来使用两个查询吗

转载 作者:行者123 更新时间:2023-12-01 15:50:52 25 4
gpt4 key购买 nike

在使用准备好的语句时,我们可以在一种方法中使用两个查询吗?我已经尝试过使用此方法,但即将出现无效列名异常。

我的代码片段如下。

    public double getPayroll(){
ResultSet rs = null;
ResultSet rs2 = null;
Connection conn = null;
PreparedStatement pstmt = null;
try {
conn = getDBConnection();
int employeeId;
String q1 = "select e_salary,e_house_rent,e_conv_allow,e_id
from employee";
pstmt = conn.prepareStatement(q1);
rs = pstmt.executeQuery();
double dailyPay=0,basicPay=0,payroll2=0;
int houseRent=0,convAllow=0;
while (rs.next()) {
dailyPay = rs.getInt(1)*.03;
houseRent=rs.getInt(2);
convAllow=rs.getInt(3);
employeeId=rs.getInt(4);
}
String q2="select att_status from attendance where
e_id=employeeId";
pstmt = conn.prepareStatement(q2);
rs2 = pstmt.executeQuery();
int noOfPresents = 0;
while(rs2.next()){
noOfPresents+=1;
}
basicPay=dailyPay*noOfPresents;
payroll2+=basicPay+houseRent+convAllow;

return payroll2;
} catch (Exception e) {
e.printStackTrace();
return 0.0;
} finally {
try {
rs.close();
pstmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}

最佳答案

你的问题是q2中的sql假设有一个名为employeeId的列,但我怀疑你想插入变量employeeId的值。

更改为

select att_status from attendance where e_id=?

然后执行

pstmt.setString(1, employeeId);

执行 pstmt.executeQuery() 之前;

关于java - 我们可以在一种方法中使用准备好的语句来使用两个查询吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6076791/

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