MyBatisコアクラス
17508 ワード
記事の目次、Sql Session FactoryBuider 、Sql Session Factory 、Sql Session 、Exector 、SttementoHandler 、Result SetHandler MyBatisの開発手順から、MyBatisは主にいくつかの種類に使われていることが分かります.
1、Sql Session FactoryBuider
各MyBatisのアプリケーションの入り口はSql Session FactoryBuiderです.
その役割はXMLプロファイルによってConfigrationオブジェクトを作成し(もちろんプログラム内で自分で作成することもできます)、そしてbuild方法によってSql Session Factoryオブジェクトを作成します.Mybatisを訪問するたびにSql Session FactoryBuiderを作成する必要はありません.一般的にはグローバルなオブジェクトを作成すればいいです.サンプルプログラムは以下の通りです.
Sql Session FactoryBuiderは、着信データストリーム(XML)からConfigrationオブジェクトを生成し、Configrationオブジェクトに基づいてデフォルトのSql Session Factory例を作成する.
2、Sql Session Factory
Sql Session Factoryオブジェクトの主な機能はSql Sessionオブジェクトを作成することであり、Sql Session FactoryBuiderオブジェクトと同じで、Mybatisに訪問するたびにSql Session Factoryを作成する必要はなく、グローバルオブジェクトを作成するのが一般的な方法です.Sql Session Factoryオブジェクトに必要な属性はConfigrationオブジェクトであり、それはMybatisグローバル構成を保存する構成オブジェクトであり、通常はSql Session FactoryBuiderによってXMLプロファイルから作成される.ここでは簡単な例を示します.
Sql Sessionオブジェクトの主な機能は一回のデータベースのアクセスと結果のマッピングを完成することであり、それはデータベースのsession概念と類似しています.スレッドセキュリティではないので、Sql Sessionオブジェクトの作用領域はメソッド内を制限する必要があります.Sql Sessionのデフォルトの実装クラスはDefault Sql Sessionであり、2つの必須設定属性があります.ConfigrationとExector.Configrationの前の文はもうここで話しません.Sql Sessionのデータベース操作はすべてExectorによって行われます.
Sql Session:デフォルトでDefault Sql Sessionを作成し、一級キャッシュを開いて、アクチュエータ、割当値を作成します.
Sql Sessionには、Mapperオブジェクトを取得するための重要な方法があります.Mapperの対象は何ですか?Mybatisの公式マニュアルによると、アプリケーションはMybatisを初期化して起動する以外に、いくつかのインターフェースを定義する必要があります.インターフェースでデータベースにアクセスする方法を定義します.インターフェースのパッケージパスを保存するには、同名のXMLプロファイルを配置する必要があります.
Sql SessionのgetMapper方法は、アプリケーションとMybatisの紐付けを結び付けることで、アプリケーションがgetMapperにアクセスするとき、Mybatisは着信するインターフェースタイプと対応するXMLプロファイルに基づいて、エージェントオブジェクトを生成します.このエージェントはMapperオブジェクトといいます.アプリがMapperオブジェクトを獲得したら、このMapperオブジェクトを通じてMybatisのSql Sessionオブジェクトにアクセスして、Mybatisフローに挿入する目的に達するはずです.
UserMapperインターフェース
ExectorオブジェクトはConfigrationオブジェクトを作成する際に作成され、Configrationオブジェクトにキャッシュされます.Exectorオブジェクトの主な機能は、Sttement Handlerを呼び出してデータベースにアクセスし、クエリ結果をキャッシュに保存することです.
5、Sttement Handler
Sttement Handlerは本当にデータベースにアクセスするところであり、Result SetHandlerを呼び出してクエリ結果を処理します.
6、Result SetHandler
クエリの結果を処理します.
1、Sql Session FactoryBuider
各MyBatisのアプリケーションの入り口はSql Session FactoryBuiderです.
その役割はXMLプロファイルによってConfigrationオブジェクトを作成し(もちろんプログラム内で自分で作成することもできます)、そしてbuild方法によってSql Session Factoryオブジェクトを作成します.Mybatisを訪問するたびにSql Session FactoryBuiderを作成する必要はありません.一般的にはグローバルなオブジェクトを作成すればいいです.サンプルプログラムは以下の通りです.
private static SqlSessionFactoryBuilder sqlSessionFactoryBuilder;
private static SqlSessionFactory sqlSessionFactory;
private static void init() throws IOException {
String resource = "mybatis-config.xml";
Reader reader = Resources.getResourceAsReader(resource);
sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
sqlSessionFactory = sqlSessionFactoryBuilder.build(reader);
}
// org.apache.ibatis.session.Configuration mybatis 。
mybatis-config.xmlの中の配置は最後にConfigrationという種類を解析します.Sql Session FactoryBuiderは、着信データストリーム(XML)からConfigrationオブジェクトを生成し、Configrationオブジェクトに基づいてデフォルトのSql Session Factory例を作成する.
2、Sql Session Factory
Sql Session Factoryオブジェクトの主な機能はSql Sessionオブジェクトを作成することであり、Sql Session FactoryBuiderオブジェクトと同じで、Mybatisに訪問するたびにSql Session Factoryを作成する必要はなく、グローバルオブジェクトを作成するのが一般的な方法です.Sql Session Factoryオブジェクトに必要な属性はConfigrationオブジェクトであり、それはMybatisグローバル構成を保存する構成オブジェクトであり、通常はSql Session FactoryBuiderによってXMLプロファイルから作成される.ここでは簡単な例を示します.
<configuration>
<settings>
<setting name="mapUnderscoreToCamelCase" value="true" />
settings>
<typeAliases>
<package name="com.jourwon.mybatis.pojo" />
typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url"
value="jdbc:mysql://127.0.0.1:3306/test?useSSL=false" />
<property name="username" value="root" />
<property name="password" value="root" />
dataSource>
environment>
environments>
<mappers>
<mapper resource="mybatis/mappers/UserMapper.xml" />
mappers>
configuration>
3、Sql SessionSql Sessionオブジェクトの主な機能は一回のデータベースのアクセスと結果のマッピングを完成することであり、それはデータベースのsession概念と類似しています.スレッドセキュリティではないので、Sql Sessionオブジェクトの作用領域はメソッド内を制限する必要があります.Sql Sessionのデフォルトの実装クラスはDefault Sql Sessionであり、2つの必須設定属性があります.ConfigrationとExector.Configrationの前の文はもうここで話しません.Sql Sessionのデータベース操作はすべてExectorによって行われます.
Sql Session:デフォルトでDefault Sql Sessionを作成し、一級キャッシュを開いて、アクチュエータ、割当値を作成します.
Sql Sessionには、Mapperオブジェクトを取得するための重要な方法があります.Mapperの対象は何ですか?Mybatisの公式マニュアルによると、アプリケーションはMybatisを初期化して起動する以外に、いくつかのインターフェースを定義する必要があります.インターフェースでデータベースにアクセスする方法を定義します.インターフェースのパッケージパスを保存するには、同名のXMLプロファイルを配置する必要があります.
Sql SessionのgetMapper方法は、アプリケーションとMybatisの紐付けを結び付けることで、アプリケーションがgetMapperにアクセスするとき、Mybatisは着信するインターフェースタイプと対応するXMLプロファイルに基づいて、エージェントオブジェクトを生成します.このエージェントはMapperオブジェクトといいます.アプリがMapperオブジェクトを獲得したら、このMapperオブジェクトを通じてMybatisのSql Sessionオブジェクトにアクセスして、Mybatisフローに挿入する目的に達するはずです.
UserMapperインターフェース
public interface UserMapper {
//
public List<User> selectAll();
}
UserMapper.xmlファイル
<mapper namespace="com.jourwon.mybatis.mapper.UserMapper">
<select id="selectAll" resultType="User">
SELECT * FROM user
select>
mapper>
テストクラスpublic class MybatisTest {
private UserMapper userMapper;
@Before
public void init() throws Exception {
String resource = "mybatis/mybatis-config.xml";
//
InputStream inputStream = Resources.getResourceAsStream(resource);
//
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
//
SqlSession session = factory.openSession(true);
userMapper = session.getMapper(UserMapper.class);
}
@Test
public void tesSelectAll() {
List<User> userList = userMapper.selectAll();
for (User user : userList) {
System.out.println(user);
}
}
}
4、ExectorExectorオブジェクトはConfigrationオブジェクトを作成する際に作成され、Configrationオブジェクトにキャッシュされます.Exectorオブジェクトの主な機能は、Sttement Handlerを呼び出してデータベースにアクセスし、クエリ結果をキャッシュに保存することです.
5、Sttement Handler
Sttement Handlerは本当にデータベースにアクセスするところであり、Result SetHandlerを呼び出してクエリ結果を処理します.
6、Result SetHandler
クエリの結果を処理します.