2

先週の金曜日、IT コンサルタント会社の面接に行きました。

インタビュアーは、私のプロジェクトと、そのプロジェクトへの参加について尋ねました。

突然、彼は休止状態について 1 つの質問を投げかけました。彼の質問は次のようなものでした

「Java EE 環境を使用して MVC アーキテクチャで開発されたプロジェクトがあるが、データベースとのやり取りに JDBC を使用している場合、どのように Hibernate をプロジェクトに統合しますか。既存のコード、以前のすべての JDBC コードを邪魔したくありません。無傷でなければなりません。」

私は彼に、既存のコードに hibernate のすべての機能を追加することを伝えました。構成ファイル、エンティティのみが必要なためです。JDBC の古いコード自体が接続を取得するために Datasourse を使用している可能性があります。JNDI を使用して同じデータソースを検索し、Hibernate でセッション ファクトリを構築できますが、大したことではありません。

しかし、インタビュアーは私の答えに満足しておらず、もう少し説明が必要でした。私は彼に感銘を与えることができませんでした。

では、上記の質問に対する答えの可能性を教えてください。または、答えにたどり着けるように、少なくとも 1 つのヒントを教えてください。

4

3 に答える 3

2

彼は次のような答えが欲しかったと思います。

一般的なアプリケーション設計では、層を分離する必要があります。次の古典的な層があります:Web層、ビジネスロジック、およびDB。Javaで記述され、ビジネスロジックとDBの間の「仲介者」の役割を果たすDAO(データアクセスオブジェクト)という名前の薄い層があります。この層はプレーンJDBCを使用して実装されているようです。

したがって、これを置き換えるのに問題はなく、このレイヤーのみをHibernateベースのレイヤーに置き換えることができます。

これで、Hibernateの構成方法に関する詳細を追加し、それをアプリケーションの他の部分と統合できます。

于 2012-04-29T06:29:48.627 に答える
0

正確な答えではなく、アプリケーションが使用するフレームワークについて言及していませんが、アプリケーションがSpringフレームワークを使用している場合、この私の質問とその回答は役に立ちますが、jdbcを休止状態に統合したかったので、私の質問は逆です.

于 2012-04-30T08:10:02.877 に答える
0

彼はおそらく、あなたがどのようにできるかを説明するためにあなたを探していたと思います:

  • 既存の SQL クエリに Hibernate ラッパーを配置する、または
  • レガシー SQL テーブルの Hibernate バインディングを作成する、または
  • コンテナレベルのトランザクションを使用して、Hibernate と従来の JDBC を統合します。

(彼が古い JDBC コードを Hibernate コードに置き換える方法について尋ねていないことは明らかです...)

しかしもちろん、質問に答える際にどのような知識/経験を示すことを彼が期待していたのかを実際に尋ねる必要があります.

于 2012-04-29T06:32:33.487 に答える