[解決済み] ClassCastException: java.util.Date は java.sql.Date にキャストできません。
2022-02-05 03:04:09
質問
こんにちは、私のコードは次のように投げています。
ClassCastException
.
スタックトレースが表示されています。
java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date
at com.affiliate.DAO.AffiliateDAO.insertAffiliate(AffiliateDAO.java:48)
ie@さん ps.setDate(6, (Date) affiliate.getDate()); DAOで
以下は私のサーブレットです。
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Affiliate af= new Affiliate();
af.setFisrtName(request.getParameter("txtFname"));
af.setLastName(request.getParameter("txtLname"));
af.setGender(request.getParameter("txtGender"));
af.setCategory(request.getParameter("txtCategory"));
String dob=(request.getParameter("txtDob"));
SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy");
Date date;
try {
date = (Date)formatter.parse(dob);
af.setDate(date);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
af.setAge(Integer.parseInt(request.getParameter("txtAge")));
af.setAddress(request.getParameter("txtAddr"));
af.setCountry("India");
af.setState(request.getParameter("txtState"));
af.setCity(request.getParameter("txtCity"));
af.setPinCode(Integer.parseInt(request.getParameter("txtPin")));
af.setEmailId(request.getParameter("txtEmail"));
af.setStd(Integer.parseInt(request.getParameter("txtStd")));
af.setContactNo(Integer.parseInt(request.getParameter("txtPhone")));
af.setMobileNo(Long.parseLong(request.getParameter("txtMobile"),10));
AffiliateService afs=new AffiliateService();
**afs.createAffiliate(af);**
}
以下は私のDAOです。
public void insertAffiliate(Affiliate affiliate){
String sql="INSERT INTO REGISTER " +"(id,FisrtName,LastName,Gender,Category,DateOfBirth,Age,Address,Country,State,City,PinCode,EmailId,Std,ContactNo,MobileNo)VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
Connection conn = null;
try {
**conn = dataSource.createConnection();**
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, affiliate.getId());
ps.setString(2, affiliate.getFisrtName());
ps.setString(3, affiliate.getLastName());
ps.setString(4,affiliate.getGender());
ps.setString(5, affiliate.getCategory());
***ps.setDate(6, (Date) affiliate.getDate());***
ps.setInt(7, affiliate.getAge());
ps.setString(8, affiliate.getAddress());
ps.setString(9,affiliate.getCountry());
ps.setString(10,affiliate.getState());
ps.setString(11, affiliate.getCity());
ps.setInt(12, affiliate.getPinCode());
ps.setString(13, affiliate.getEmailId());
ps.setInt(14,affiliate.getStd());
ps.setInt(15, affiliate.getContactNo());
ps.setLong(16, affiliate.getMobileNo());
ps.executeUpdate();
ps.close();
} catch (SQLException e) {
throw new RuntimeException(e);
} finally {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {}
}
}
}
以下は私のDTOです。
public class Affiliate {
@NotNull
@Past
Date date;
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
よろしくお願いします
どのように解決するのですか?
として
ドキュメント
によると
Date
パラメータを
setDate()
の
PreparedStatement
型の Date オブジェクトを受け取ります。
java.sql.Date
. しかし、あなたが使っていたのは
java.util.Date
オブジェクトを作成しました。
Affiliate
クラスで使用されます。
となるわけです。
ClassCastException: java.util.Date cannot be cast to java.sql.Date
.
この問題を解決するには、以下のいずれかの方法を取る必要があります。
Date
オブジェクトを作成します。
Affiliate
クラスから
java.sql.Date
または次のようにします。
ps.setDate(6, new java.sql.Date(affiliate.getDate().getTime()));
関連
-
[解決済み】Android Studioでタスク :app:compileDebugJavaWithJavac の実行に失敗しました。
-
[解決済み] ISO 8601準拠のStringをjava.util.Dateに変換する。
-
[解決済み] チェックされていないキャストの警告に対処するにはどうすればよいですか?
-
[解決済み] java.util.DateからXMLGregorianCalendarへの変換
-
[解決済み] java.util.Dateをjava.time.LocalDateに変換する。
-
[解決済み] java.time.LocalDateTimeとjava.util.Date間の変換について
-
[解決済み] java.util.Dateとjava.sql.Dateの比較
-
[解決済み] java.util.Dateをjava.sql.Dateに変換する方法は?
-
[解決済み] java.util.DateからStringへの変換
-
[解決済み】java.time.LocalDate を java.util.Date 型に変換する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】エラー:配列または java.lang.Iterable のインスタンスに対してのみ反復処理を行うことができます。
-
[解決済み】このコンパイルユニットは名前付きモジュールに関連しているため、名前付きパッケージeclipseを宣言する必要があります。
-
[解決済み】スレッド「main」での例外 java.lang.StringIndexOutOfBoundsException: 文字列のインデックスが範囲外です。0 [閉店]
-
[解決済み] 二項演算子「&」のオペランド型がおかしい java
-
[解決済み] hibernate のプロパティが見つかりません。
-
[解決済み】Javaで無限大を実装する方法とは?
-
[解決済み】Javaを包含するクラスではないのか?
-
[解決済み] テスト
-
[解決済み】Ubuntu: OpenJDK 8 - パッケージを見つけることができません。
-
[解決済み】フォルダに書き込もうとすると「java.nio.file.AccessDeniedException」が発生する件