我有一個存儲過程,需要以下輸入參數 -
的Java字符串到日期
PROCEDURE `Report_Publishing`(p_StartDate datetime, p_EndDate dateTime, p_Action varchar(15))
從前端我收到在以下格式的開始和結束日期 -
start as a String "2017-03-15"
和end as a String "2017-04-17"
,
以下是一段代碼,將開始日期和結束日期轉換爲存儲過程所需格式 -
import java.sql.CallableStatement;
import java.sql.Connection;
import java.util.Date;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.*;
import java.text.SimpleDateFormat;
public List<PublishReportDto> getExport(String start, String end, String action, Connection conn, String sql) {
List<PublishReportDto> publishList = null;
try {
CallableStatement cs = conn.prepareCall(sql);
start += " 00:00:00";
end += " 00:00:00";
Date startDate = null;
Date endDate = null;
try {
startDate = (Date) new SimpleDateFormat("yyyy-MM-dd").parse(start);
endDate = (Date) new SimpleDateFormat("yyyy-MM-dd").parse(end);
} catch (ParseException e) {
e.printStackTrace();
}
cs.setDate(1,(java.sql.Date) startDate);
cs.setDate(2,(java.sql.Date) endDate);
cs.setString(3, action);
cs.registerOutParameter(1, java.sql.Types.DATE);
cs.registerOutParameter(2, java.sql.Types.DATE);
cs.registerOutParameter(3, java.sql.Types.VARCHAR);
ResultSet rs = cs.executeQuery();
我收到以下異常 -
Exception in thread "main" java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date
的修改 -
替換 -
1. import java.sql.Date
與進口java.util.Date;
2.
cs.setDate(1,startDate);
cs.setDate(2,endDate);
通過
cs.setDate(1,(java.sql.Date) startDate);
cs.setDate(2,(java.sql.Date) endDate);
現在我越來越 -
Exception in thread "main" java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date
是否有人可以幫助我嗎?
嗨你的解決方案的工作,雖然現在我收到以下異常 - java.sql.SQLException:參數1不是一個OUT參數 –