开发者

Can we use two queries using prepared statement in one method

Can we use two queries in one method while using prepared statement, I have tried using this but invalid column name exception is coming.

My code snippets is as follows.

    public double getPayroll(){
            ResultSet rs = null;
            ResultSet 开发者_StackOverflow社区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();
              }
            }
}


Your problem is that the sql in q2 assumes that there is a column named employeeId, but I suspect you want to insert the value of the variable employeeId.

Change it to

select att_status from attendance where e_id=?

Then execute

pstmt.setString(1, employeeId);

before executing pstmt.executeQuery();

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜