jackの勉強日記

勉強したことをアウトプットするための日記です。

JavaとMySQLを用いたアプリケーション作成

最近はJavaMySQLを使用して、掲示板のようなアプリケーションを作成していました。

今日コードレビューを受けた際に、初めて知った知識があったのでここに備忘録として残します。

掲示板を使用するユーザーの情報を編集する際に、編集するユーザーのidを取得してデータベースからそのユーザーの情報を引っ張ってくるという時のお話。

前提として、データベース上のuserテーブルのidカラムはint型の数値が入ります。

DAOでsql文を作成する際に、user_id = ?とバインド変数を使用して、後からメソッドの引数としてint型のidを渡していました。

id自体はrequest.getParameter("userId")という形で取得してきていたので、String型での取得ということになります。これをint型にキャストして、

int userId = Integer.parseInt(request.getParameter("userId"))

という形にしてたんですね。

一応機能としては、動きました。

しかし打鍵テストの際に、編集画面のURLに直接、http~userId=hogeと打ち込むと、エラーが発生しました。

理由としては、hogeをint型にキャストできませんよということでした。

ただ、そうなるとint型でもメソッドに引数としてuserIdを渡すのは無理なのでは?と

ハマってしまいました。

結論、ユーザーを検索してくるselectメソッド(引数にString userId)を新しく追加してできました。

データベースから引っ張ってくる際に、String型の数値を(語弊があるかも)用いて検索がかけれることを知りませんでした。

レビューの際に教えていただき、勉強になりましたとさ。