TechAcademyを進めていて、Lesson10「JDBC3」で躓いてしまいました。。
自分がわからない部分がわからない。という状態に陥っており、課題解決に多くの時間を使ってしまいました。。
原因は「単なる自分の勘違い」というものでして、同じような躓きをされている方にお役立て頂ければとの思いで記事を書いてます!
課題(自分の勘違い)
Lesson10課題の回答方法として、Lesson10のサンプル文章(Hibernateを使って、静的なDB操作を行う)+α(動的なDB操作が必要)という認識でした。
⇛間違い。HibernateはSQLを用いずにJavaの関数を使い、DB操作ができる。
SQL検索ではなく、Javaのfind関数を使って、MySQL内のDB情報を検索できる。
↑今回の記事の結論としては上記した内容です。
もし詳細説明がほしいという方向けに、下記で詳しく説明いたします!
躓いてしまった点
まずは現状を言語化致します。
【Lesson10で実現したいこと】
Hibernateを使ってデータ取得を達成したい
【何をしたか】
Lesson9のコードを参考に、DTO,DAO.util,DTO(SQL実行のファイル),メインファイルの計4つを作成した。
【どこで躓いているのか】
Hibernateを使った際に、SQL文を使ったプログラム作成方法が分からず、テキスト以外でネット検索も試みましたが解決が出来ませんでした。
そして大きく迷走
ネットを検索した所、HQLを活用した解決策がヒットして試したりしました。
⇛ただテキストの内容から大きく外れているという印象で、それ以外の解決方法が検討もつかないという状況でした。
課題(自分の勘違い)
条件検索の部分で、HibernateでもSQL操作が必要だという勘違い
⇛正しくは、HibernateはSQLを用いずにJavaの関数を使い、DB捜査ができる。
SQL検索ではなく、Javaのfind関数を使って、MySQL内のDB情報を検索できる。
つまり、クラスファイルは,
メインメソッドがあるReview07.javaと
personテーブルと関連づけをしたDTOクラスのPerson.java(名前は例です)
DAOクラスのDBUtil.javaの3つになる。
問題解決した際に、TechAcademyの講師からアドバイス頂いた点
進め方としては,まずは,入力を受け付ける部分は後回しにして、固定でいいので,
Hibernateをつかってpersonテーブルからデータを1件取得する形を作ってみると、進めやすいのでは?
まとめ
今回学んだこと「30分躓いたら即質問」
⇛自分のしょうもない勘違いを解決するために、多くの時間を使ってしまいました。
TechAcademyの質問を活用した所、一瞬で解決をすることが出来ました。
質問する際に、自分がわからない部分がわからないという状態に陥ってしまい、悩み解消に時間をかけた結果、勘違いにも気づけない始末、
今後は30分の制限をかけ、言葉がまとまってなくても質問というSOSを出し、貴重な時間を守る。という教訓に繋がりました。
この記事が誰かの役に立てば嬉しいです。