找了好久都没有找到错误出在哪里!!public EmployeeVo queryBySerialNumber(String serialNumber) throws Exception { String sql = "SELECT em_serialNumber,em_name,em_sex,em_age,em_IDCard,em_born,em_nation,em_marriage,em_visage,em_ancestralHome,em_tel,em_address,em_afterSchool,em_speciality,em_culture,em_startime,em_departmentId,em_typeWork,em_creatime,em_createName,em_bz FROM tb_employee WHERE em_serialNumber=?";
PreparedStatement pstmt = null;
DataBaseConnection dbc = null;
EmployeeVo employee = null;

try {
dbc = new DataBaseConnection();
pstmt = dbc.getConnection().prepareStatement(sql);
pstmt.setString(1, serialNumber);
ResultSet rs = pstmt.executeQuery();

if(rs.next()){
employee = new EmployeeVo();
pstmt.setString(1, employee.getEm_serialNumber());
pstmt.setString(2, employee.getEm_name());
pstmt.setString(3, employee.getEm_sex());
pstmt.setString(4, employee.getEm_age());
pstmt.setString(5, employee.getEm_IDCard());
pstmt.setString(6, employee.getEm_born());
pstmt.setString(7, employee.getEm_nation());
pstmt.setString(8, employee.getEm_marriage());
pstmt.setString(9, employee.getEm_visage());
pstmt.setString(10, employee.getEm_ancestralHome());
pstmt.setString(11, employee.getEm_tel());
pstmt.setString(12, employee.getEm_address());
pstmt.setString(13, employee.getEm_afterSchool());
pstmt.setString(14, employee.getEm_speciality());
pstmt.setString(15, employee.getEm_culture());
pstmt.setString(16, employee.getEm_startime());
pstmt.setString(17, employee.getEm_departmentId());
pstmt.setString(18, employee.getEm_typeWork());
pstmt.setString(19, employee.getEm_creatime());
pstmt.setString(20, employee.getEm_createName());
pstmt.setString(21, employee.getEm_bz());
}
pstmt.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
dbc.close();
}
return employee;
}

解决方案 »

  1.   

    public EmployeeVo queryBySerialNumber(String serialNumber) throws Exception { String sql = "SELECT em_serialNumber,em_name,em_sex,em_age,em_IDCard,em_born,em_nation,em_marriage,em_visage,em_ancestralHome,em_tel,em_address,em_afterSchool,em_speciality,em_culture,em_startime,em_departmentId,em_typeWork,em_creatime,em_createName,em_bz FROM tb_employee WHERE em_serialNumber=?";
    PreparedStatement pstmt = null;
    DataBaseConnection dbc = null;
    EmployeeVo employee = null;

    try {
    dbc = new DataBaseConnection();
    pstmt = dbc.getConnection().prepareStatement(sql);
    pstmt.setString(1, serialNumber);
    ResultSet rs = pstmt.executeQuery();

    if(rs.next()){
    employee = new EmployeeVo();
    pstmt.setString(1, employee.getEm_serialNumber());
    pstmt.setString(2, employee.getEm_name());
    pstmt.setString(3, employee.getEm_sex());
    pstmt.setString(4, employee.getEm_age());
    pstmt.setString(5, employee.getEm_IDCard());
    pstmt.setString(6, employee.getEm_born());
    pstmt.setString(7, employee.getEm_nation());
    pstmt.setString(8, employee.getEm_marriage());
    pstmt.setString(9, employee.getEm_visage());
    pstmt.setString(10, employee.getEm_ancestralHome());
    pstmt.setString(11, employee.getEm_tel());
    pstmt.setString(12, employee.getEm_address());
    pstmt.setString(13, employee.getEm_afterSchool());
    pstmt.setString(14, employee.getEm_speciality());
    pstmt.setString(15, employee.getEm_culture());
    pstmt.setString(16, employee.getEm_startime());
    pstmt.setString(17, employee.getEm_departmentId());
    pstmt.setString(18, employee.getEm_typeWork());
    pstmt.setString(19, employee.getEm_creatime());
    pstmt.setString(20, employee.getEm_createName());
    pstmt.setString(21, employee.getEm_bz());
    }
    pstmt.close();
    } catch (Exception e) {
    e.printStackTrace();
    } finally {
    dbc.close();
    }
    return employee;
    }
      

  2.   

    pstmt.setString(1,...) 到 pstmt.setString(21,...) 这个是在干什么????你应该从rs里取值吧?还有你既然用了Domain Object,为什么不直接hibernate呢?
      

  3.   

     if(rs.next()){
                    employee = new EmployeeVo();
                    pstmt.setString(1, employee.getEm_serialNumber());
                    pstmt.setString(2, employee.getEm_name());
                    pstmt.setString(3, employee.getEm_sex());
                    pstmt.setString(4, employee.getEm_age());
                    pstmt.setString(5, employee.getEm_IDCard());
                    pstmt.setString(6, employee.getEm_born());
                    pstmt.setString(7, employee.getEm_nation());
                    pstmt.setString(8, employee.getEm_marriage());
                    pstmt.setString(9, employee.getEm_visage());
                    pstmt.setString(10, employee.getEm_ancestralHome());
                    pstmt.setString(11, employee.getEm_tel());
                    pstmt.setString(12, employee.getEm_address());
                    pstmt.setString(13, employee.getEm_afterSchool());
                    pstmt.setString(14, employee.getEm_speciality());
                    pstmt.setString(15, employee.getEm_culture());
                    pstmt.setString(16, employee.getEm_startime());
                    pstmt.setString(17, employee.getEm_departmentId());
                    pstmt.setString(18, employee.getEm_typeWork());
                    pstmt.setString(19, employee.getEm_creatime());
                    pstmt.setString(20, employee.getEm_createName());
                    pstmt.setString(21, employee.getEm_bz());
                }-->
     if(rs.next()){
                    employee = new EmployeeVo();
                    employee.setEm_serialNumber()(rs.getString(1));
                   ....下同,字段对应。
                }下面
    pstmt.close();
    -->
    rs.close();
    pstmt.close();
    虽然最后你关连接,rs也关了。但是,最好用到的都依次关掉。