Mybatisの前任者はIbatisでした。これはもともとApacheのオープンソースプロジェクトでした。 2010年、このプロジェクトはApache Software FoundationからGoogleコードに移動し、MyBatisと改名されました。 MyBatisは、プレーンSQLクエリ、ストアドプロシージャ、高度なマッピングをサポートする優れた永続レイヤーフレームワークです。 MyBatisは、ほぼすべてのJDBCコードとパラメーターの手動設定と結果セットの取得を排除します。 MyBatisは、構成および元のマッピング、マッピングインターフェイス、JavaのPojo(古いJavaオブジェクト、通常のJavaオブジェクトを計画)にデータベース内のレコードに使用するために、簡単なXMLまたはアノテーションを使用します。
MyBatisの機能アーキテクチャは3つのレイヤーに分かれています(写真はBaidu Encyclopediaから借用されています):
1)APIインターフェイスレイヤー:外部使用のインターフェイスAPIを提供し、開発者がデータベースを操作します。インターフェイスレイヤーがコールリクエストを受信すると、データ処理層を呼び出して特定のデータ処理を完了します。
2)データ処理層:特定のSQL検索、SQLの解析、SQL実行、および実行結果マッピング処理などを担当します。その主な目的は、コールの要求に基づいてデータベース操作を完了することです。
3)基本的なサポートレイヤー:接続管理、トランザクション管理、構成の読み込み、キャッシュ処理など、最も基本的な機能サポートを担当します。これらはすべて一般的なものであり、最も基本的なコンポーネントとしてそれらを抽出します。データ処理層の上層に最も基本的なサポートを提供します。
デモを使用した単純なMyBatisです。
全体的な構造
POM依存関係
2つのJARパッケージを参照する必要があります。1つはMyBatis、もう1つはMySQL-Connector-Javaです。 Mavenプロジェクトの場合は、次のようにPOMに依存関係を追加します。
<Dependency> groupId> org.mybatis </groupid> <artifactid> mybatis </artifactid> <version> 3.2.3 </version> </dependency> <dependency> groupid> mysql </groupid> <artifactid> mysql-connector-java </artifactid> <バージョン>
データの準備
テストのためにMySQLにポイントデータを作成します。
データベースmybatis_test;作成テーブルユーザーの作成(age integer not null、name varchar(64)not null default '');ユーザー値を挿入(18、 'zhanjindong');ユーザー値(20、 'zhangsan');
構成ファイル
2種類の構成ファイルが必要です。 1つはMyBatis構成ファイルMyBatis-Config.xmlです。この例では、非常にシンプルな構成です。インターネット上の詳細な構成には多くの指示があります。
<?xml version = "1.0" encoding = "utf-8"?> <!doctype構成public " - // mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd" name = "cacheenabled" value = "false" /> <setting name = "usegeneratedkeys" value = "true" /> <setting name = "defaultexecutortype" value = "reuse" /> < /settings> <typealias alias = "user" type = "test.mybatis.user" <TransactionManager Type = "JDBC"/> <DataSource Type = "Pooled"> <Property name = "Driver" value = "com.mysql.jdbc.driver"/> <プロパティ名= "url" value = "JDBC:mysql://192.168.71.38:3306/mybatis_test"/< value = "root"/> <プロパティ名= "パスワード" value = "123456"/> </dataSource> </environment> </environments> <mappers> <mapper resource = "mappers/usermapper.xml"/> </mappers> </configuration> </mappers
別のタイプは、データアクセスインターフェイスマッピングファイルです。例では、usermapper.xmlです。このファイルは、SRC/メイン/リソースまたはサブディレクトリMyBatisによって見つけることができます。 MyBatis-Config.xmlのマッパー/マッパーノードのリソースによって指定されています。
<?xml version = "1.0" encoding = "utf-8"?> <!doctype mapper public " - // mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd名前空間はusermapperインターフェイスのパスである必要があります " - > <id =" insertuser "parametertype =" user "> inserting user(name、age)values(#{name}、#{age})<! - ここでは、SQLの最後にセミコロンを追加できません。 usermapperインターフェイスの名前 - > <select id = "getuser" resultType = "user" parametertype = "java.lang.string"> select * name =#{name} </select> </mapper>対応するマッピングファイルは、名前空間test.mybatisの下のUsermapperインターフェイスです。これは、データテーブルにアクセスするインターフェイスのみを定義します。
パッケージtest.mybatis; public interface usermapper {public void insertuser(user user);パブリックユーザーgetUser(文字列名);} pojo:user.javaが必要です
パッケージtest.mybatis; public class user {private string name;民間整数年齢; public string getName(){return name; } public void setName(string name){this.name = name; } public Integer getage(){return age; } public void Setage(整数年齢){this.age = age; } public user(string name、integer age){super(); this.name = name; this.age = age; } public user(){super(); }}テスト
MyBatisデータベース操作は、SQLSessionというクラスを使用します。このクラスは、sqlsessionFactoryによって生成されます。一般に、SQLSessionFactoryをグローバルに維持することをお勧めします。
testmybatis.java
Package test.mybatis; import java.io.ioexception; Import java.io.reader; import org.apache.ibatis.io.resources; Import org.apache.ibatis.session.sqlsessionfactory; Import org.apache.ibatis.session.ssession.ssessionfactory statisutild; privice statisutild sqlsessionFactory; static {string resource = "mybatis-config.xml"; Reader reader = null; try {reader = resources.getResourceasReader(resource); } catch(ioException e){system.out.println(e.getmessage()); } sqlSessionFactory = new SQLSessionFactoryBuilder()。build(reader); } public static sqlsessionFactory getSqlSessionFactory(){return sqlsessionFactory; }}テストコードは次のとおりです。
testmybatis.java
パッケージtest.mybatis; import org.apache.ibatis.session.sqlsession; Import org.apache.ibatis.session.squlsessionfactory; public class testmybatis {static sqlsessionfactory sqlsessionfactory = null; static {sqlsessionfactory = mybatisutil.getSqlSessionFactory(); } public static void main(string [] args){testadd(); getUser(); } public static void testadd(){sqlsession sqlsession = sqlsessionfactory.opensession(); try {usermapper usermapper = sqlsession.getMapper(usermapper.class); user user = new user( "lisi"、new Integer(25)); usermapper.insertuser(user); sqlsession.commit(); //ここに送信する必要があります。そうしないと、データはデータベースに入力されません}最後に{sqlsession.close(); }} public static void getuser(){sqlsession sqlsession = sqlsessionfactory.opensession(); try {usermapper usermapper = sqlsession.getMapper(usermapper.class);ユーザーユーザー= usermapper.getuser( "zhangsan"); System.out.println( "name:" + user.getName() + "| age:" + user.getage()); }最後に{sqlsession.close(); }}}注意すべきこと
1. MyBatisはLog4Jを使用してログを記録しますが、デバッグモードをオンにすると、パフォーマンスに非常に強い影響があるようです。
2。MyBatisのクエリキャッシュは、パフォーマンスに非常に大きな影響を与え、有効化と有効化の間のギャップは非常に大きくなります。
注:キャッシュラインをマッパーファイルに追加する必要があります。そうしないと、有効になりません。
サンプルコードのダウンロード:コードダウンロード
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。