MybatisとJDBCの違い
3070 ワード
回転:http://www.cnblogs.com/love-Stefanie/p/6838269.html
今日は面接でこの質問をしましたが、その時の答えはよくなかったです.今整理します.
JDBCはJavaが提供するオペレーティングデータベースのAPIである.
MyBatisは、一般的なSQLクエリ、ストレージプロセス、および高度マッピングをサポートする優れた耐久層フレームです.MyBatisはほとんどのJDBCコードとパラメータの手動設定と結果セットの検索パッケージを削除しました.MyBatisは、簡単なXMLまたは注釈を使用して、構成と元のマッピングに使用し、インターフェースとJavaのPOJO(Plain Old Java Object、普通のJavaオブジェクト)をデータベース内のレコードにマッピングすることができます.
MyBatisはJDBCのパッケージです.JDBCに対して、MyBatisは以下のような利点があります.
1.取得とリリースの最適化
私達は普通データベースにアクセスする時、データベース接続池を通してデータベースを操作します.データベース接続池はいくつかあります.例えば、C 3 P 0、DBCPも容器自体のJNDIデータベース接続池を利用することができます.DataSourceを通じて分離・結合できます.データソースからデータベース接続を統一して取得します.DataSourceは具体的にDBCPで実現しますか?それともコンテナのJNDIで実現しますか?です.ですから、DataSourceの具体的な実現はユーザー配置によって変化に対応します.
C 3 P 0 xml設定:
私達はJDBCを使ってデータベースを操作する時、SQLクエリ文はそれぞれのJava類に分布しています.このように読み取り可能性が悪く、メンテナンスに役立ちません.Java類のSQL文を修正する時、再度コンパイルします.
MybatisはSQL文を配置ファイルにまとめて管理してもいいです.今後は配置ファイルを修正しても、配置を再編集する必要はありません.
3.動的SQL文を生成する
私たちは照会の中で、いくつかの属性によって組み合わせて照会する必要があるかもしれません.例えば、商品の問い合わせは、商品名によって調べられます.出荷先によっても調べられます.JDBCで照会すると、SQL文を複数書く必要があります.
Mybatisは、設定ファイルでラベルを使ってSQL文の綴りを行い、動的SQL文を生成することができます.例えば、次のような例があります.
4.結果セットをマッピングすることができます.
私達はJDBCを使って照会する時、一つの結果集ResultSetを返します.結果集から結果を取り出して、必要なタイプにカプセル化します.
Mybatisでは、結果を直接的に自分の必要なタイプにマッピングすることができます.例えば、JavaBeanオブジェクト、Map、Listなどです.前の例のように、結果をint型にマッピングします.
今日は面接でこの質問をしましたが、その時の答えはよくなかったです.今整理します.
JDBCはJavaが提供するオペレーティングデータベースのAPIである.
MyBatisは、一般的なSQLクエリ、ストレージプロセス、および高度マッピングをサポートする優れた耐久層フレームです.MyBatisはほとんどのJDBCコードとパラメータの手動設定と結果セットの検索パッケージを削除しました.MyBatisは、簡単なXMLまたは注釈を使用して、構成と元のマッピングに使用し、インターフェースとJavaのPOJO(Plain Old Java Object、普通のJavaオブジェクト)をデータベース内のレコードにマッピングすることができます.
MyBatisはJDBCのパッケージです.JDBCに対して、MyBatisは以下のような利点があります.
1.取得とリリースの最適化
私達は普通データベースにアクセスする時、データベース接続池を通してデータベースを操作します.データベース接続池はいくつかあります.例えば、C 3 P 0、DBCPも容器自体のJNDIデータベース接続池を利用することができます.DataSourceを通じて分離・結合できます.データソースからデータベース接続を統一して取得します.DataSourceは具体的にDBCPで実現しますか?それともコンテナのJNDIで実現しますか?です.ですから、DataSourceの具体的な実現はユーザー配置によって変化に対応します.
C 3 P 0 xml設定:
DBCP xml設定:
DURID xml設定:
com.mysql.jdbc.Driver
${jdbc_url_gx}
${jdbc_username_gx}
${jdbc_password_gx}
2.SQLを一括管理し、データベースにアクセス操作を行う私達はJDBCを使ってデータベースを操作する時、SQLクエリ文はそれぞれのJava類に分布しています.このように読み取り可能性が悪く、メンテナンスに役立ちません.Java類のSQL文を修正する時、再度コンパイルします.
MybatisはSQL文を配置ファイルにまとめて管理してもいいです.今後は配置ファイルを修正しても、配置を再編集する必要はありません.
3.動的SQL文を生成する
私たちは照会の中で、いくつかの属性によって組み合わせて照会する必要があるかもしれません.例えば、商品の問い合わせは、商品名によって調べられます.出荷先によっても調べられます.JDBCで照会すると、SQL文を複数書く必要があります.
Mybatisは、設定ファイルでラベルを使ってSQL文の綴りを行い、動的SQL文を生成することができます.例えば、次のような例があります.
ニックネームやメール、または両方の組み合わせでユーザー数を検索します.4.結果セットをマッピングすることができます.
私達はJDBCを使って照会する時、一つの結果集ResultSetを返します.結果集から結果を取り出して、必要なタイプにカプセル化します.
Mybatisでは、結果を直接的に自分の必要なタイプにマッピングすることができます.例えば、JavaBeanオブジェクト、Map、Listなどです.前の例のように、結果をint型にマッピングします.