1、どのような役割3つのフレームの各?
:三つのフレームはスプリング+ + MyBatisのSPRINGMVCを指す
SPRINGMVC:これは、ウェブ層に使用される(従来のストラットサーブレットアクションに相当)コントローラが対応する、ユーザ要求を処理します。たとえば、アドレスバーにユーザーのhttp://ドメイン/ログインは、その後、springmvc(中央ビジネスロジック検証のユーザー名とパスワードが含まれているだけでなく、クエリがあり、この要求とそれに対応するメソッド呼制御層を傍受しますデータベース操作、これらはspringmvc義務ではないが))のみ返されるデータフォーマットJSON / XMLなど、最終的な結果がユーザに返さ、もちろん(対応するページを返します。springmvcは、ユーザーを扱うの生活過程の前後に行うことです!!
春:強すぎるが、私はそれを要約する単語やフレーズを使用することはできません。しかし、我々は通常、このメカニズムで、我々はすべてのクラスでこれを使用していない、ロードされた豆することができ、ほとんどのIOCコンテナであり、(私たちはクラスでJavaで、もちろん、サービスのDAO内を含む)の接触の開発を見積もりますそれが初期化されたとき、稀にキーワードnewを見ません。追加のスプリングAOP、トランザクション管理、そして私たちは頻繁に使用されています。
MyBatisの:あなたは私に言わせれば有名なHibernateでの違いは何ですか?言えば十分、彼は私のニーズに沿ったもの以上でした。まず、それは自由に行うことができます書かれたコードデータベースアクセスの効率を高めるために、(彼の後ろに私の友人がいると言って当然ではないの)経験のある人々のデータベースを持つことになりますSQLを、制御することができます。多くの場合、SQLエラーの一般的な手続き上のエラーは、他の人がすぐに間違った場所、あるいは元を最適化することができ、書き込みSQLを見つけることができるコードの後を引き継いだため、2番目のは、それは、我々の組織のSQLを管理するためのXMLの方法を使用することができます。
図2に示すように、スプリングの二つの特徴(IOCとAOP)
1 春のトランザクション 1.1 春のトランザクション(百度)は何 のトランザクションは、(例えば、複数のデータを挿入するなど)データベースの一連の操作であるか、統一されたロールバックを提出し、あなた成功した場合、インサート、そして一緒に、中央の異常な外観であれば、その後、ロールバックする前に、すべての操作。 使用春のトランザクション管理メカニズムは、トランザクションマネージャーの管理です。ロールバックのアノテーション@Transactional。 2 スプリング請求項 1 )は、オープンソース・フレームワーク。 2 )IOC(制御の反転) クラスが作成され、構成ファイルに依存関係が、コンフィギュレーションファイルは疎結合を達成するために注入される書き込みます。 3 )AOP プログラムロジックセキュリティ、トランザクション及び他の独立した特徴は、これらの機能を挿入するばね構成ファイルを使用して、抽出しました。
3、春のBeanのライフサイクルを説明してください?
春のBeanのライフサイクルは、シンプルで理解しやすいです。Beanインスタンスが初期化されると、初期化動作の以下のシーケンスは、使用可能な状態を達成します。同様に、コールがビーンデストラクタ関連の操作を必要とせず、容器を豆から除去されます。 春のコンテナに作成される豆のライフサイクルを管理する責任のSpring Beanの工場。Beanのライフサイクルは、組成物の2つのコールバック(コールバック)メソッドで構成されています。 1つの初期化後に呼び出されるコールバックメソッド。 2 。コールバックメソッドが破壊される前に呼び出されます。 春のフレームワークは、Beanのライフサイクルイベントを管理するには、次の4つの方法が用意されています。 InitializingBeanとDisposableBeanコールバックインタフェース• その他の特別のための•Awareのインターフェイスが作用 •豆プロファイル法)(カスタムのinit()メソッドをして破壊する •@PostConstructと@PreDestroy注釈モード customInitを使用して()とサンプルコードライフサイクル管理ビーンのcustomDestroy()メソッドは、以下: <豆> <ビーンID = "DemoBean" クラス = "com.howtodoinjava.task.DemoBean" INIT -method =「customInit "破壊法=" customDestroy " > </ Beanを> 春の豆ライフサイクルライフサイクル春:詳細については、を参照してください。
4、SpringMVC実行フロー
工程 1 は、ユーザがコントローラのDispatcherServletフロントエンドに要求を送信 2 、のDispatcherServlet HandlerMapping呼プロセッサは、要求マッパを受信します。 3 、プロセッサは、プロセッサはバックのDispatcherServletに一緒に(いずれかが発生した場合)オブジェクトとプロセッサブロッカーを生成し、特定のマッピング処理を見出します。 。4 、のDispatcherServlet HandlerAdapter呼処理アダプタ 。5 、適応HandlerAdapterの特定の呼処理後(コントローラ、またバックエンドと呼ばれます)。 図6 は、コントローラは、完全なリターンのModelAndViewを行う 。7 、HandlerAdapterは、実行結果のModelAndViewのDispatcherServletに戻されるコントローラ 。8 、のDispatcherServletのModelAndViewレゾルバViewResloverビューを通過する 9 、解析された特定ViewReslover表示返し 10を(モデルデータに対して約充填ビューのDispatcherServletのビューをレンダリングします、ビューへ)。 ユーザ11、のDispatcherServlet応答
5、手書きのOracleデータベースのストアドプロシージャ
ストアドプロシージャは、SQLステートメントの特定のセットを完了するために関数のセットであり、データベースに格納されてコンパイルした後、ユーザーおよびパラメータが与えられているSQLコードフラグメントの部分(ある場合、ストアドプロシージャの指定された名前の存在しないことにより、与えられた基準にストアドプロシージャ存在がそれを実行するために)パラメータを与えていないだろう。それは、コードのSQL文の一部であり、その効率が非常に高いので、データベースに格納されてコンパイルしているので。 次のようにあるストアドプロシージャを作成します。 作成[または交換]プロシージャプロシージャ名[(のパラメータ名 | OUTデータタイプ)] ASを | IS の宣言変数 始まる PLSQLサブルーチン本体と、 エンド; // バックは、追加するエンドである場合プロシージャ名。 ストアドプロシージャを呼び出す 最初:ストアドプロシージャ名(パラメータ)を呼び出す; 第二:始まる ストアド・プロシージャ名(パラメータ); END; 例えば、1:所与の従業員100を指定レイズ、フロントまでと上昇の背面プリントアウト賃金は ストアドプロシージャを作成: 作成または(数ENOに)手続きaddsalを交換することはIS PEMP EMP%のROWTYPE; 始める SELECTINTO PEMP * EMPNO =からEMP ENO、 更新EMP SET SAL = SAL + 100 EMPNO = ENO; DBMS_OUTPUT.PUT_LINE( 'ENAME:' || || || pemp.ename(pemp.sal + 100 '後' ) ); エンドaddsalと、 ストアドプロシージャを呼び出す: 最初のコール:コールaddsal( 7369 ); 第二の呼び出し: 開始 addsal(ENO => 7369 ); COMMIT; // Oracleデータベースを手動で送信するので、すべての関与追加および削除は、コミットでなければなりません; END; 例えば、2:すべての従業員の出力名と給与 ストアドプロシージャを作成するために: AS infoempプロシージャを作成したり、交換する カーソルallempがある SELECT EMPから*; //は、カーソルを作成します EMP%のenempのROWTYPE; 始まる オープンallempと、 ループ allemp FETCH INTOのenempと、// カーソルから使用データはサイクルフェッチ (enemp.ename || '' || DBMS_OUTPUT.PUT_LINEをenemp.sal); 終了allemp%のNOTFOUND; // 出口サイクリング条件は、 ループを終了し、 使用閉じるallemp; END; ストアドプロシージャを呼び出す: 最初:コールinfoemp(); 第二:始める (infoempを); END; これらは、ストアドプロシージャのOracleデータベースの基本的な知識及び利用されています。
図6に示すように、データ・テーブルのデータベース60~80