java.lang.reflect.InvocationTargetException
开发工具与关键技术:java
作者:彭浩达
撰写时间:2019年 7月 14日
public void selectlyd(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
response.setCharacterEncoding(“utf-8”);
response.setContentType(“text/json”);
String lyodd = request.getParameter("lyodd");
PurDrugMed drugMed = crkservice.selectly(lyodd);
JSONObject jsonObject = JSONObject.fromObject(drugMed);
response.getWriter().write(jsonObject.toString());
response.getWriter().flush();
response.getWriter().close();
}
public PurDrugMed selectly(String lyodd) {
// TODO Auto-generated method stub
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
PurDrugMed drugMed = null;
try {
con = DBUtil.getConnection();
ps = con.prepareStatement(selectly);
ps.setString(1, lyodd);
rs = ps.executeQuery();
while(rs.next()){
drugMed = new PurDrugMed();
drugMed.setBuyer(rs.getString("warehousekeeper"));
drugMed.setDate(rs.getDate("date"));
drugMed.setPharmacyid(rs.getInt("pharmacyid"));
drugMed.setMedicineid(rs.getInt("medicineid"));
drugMed.setRemark(rs.getString("remark"));
drugMed.setLyodd(rs.getString("lyodd"));
drugMed.setPurchaseid(rs.getInt("purchaseid"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
DBUtil.close(con, ps, rs);
}
return drugMed;
}
错误得原因就是这个date,它看起来没什么问题,但获取的值有java中不识别的数据类型。如:java.sql.date,并不是java中的时间类型java.utils.date。
解决问题的办法是将java.sql.date转为java.utils.date,如:java.utils.date(date);并将null值写成空的字符串[ “” ];
把查询得这句drugMed.setDate(rs.getDate(“date”));
改成drugMed.setDate(new Date(rs.getDate(“date”).getTime()));
那就没问题