mybatis学習ノート(五)セットとプラグイン

2094 ワード

mybatis学習ノート(五)セットとプラグイン
  • mybatisプラグイン
  • の4つのコンポーネント
  • Exector
  • Station Handler
  • Parameeter Handler
  • Result SetHandler
  • カスタムプラグイン
  • 総括
  • mybatisプラグイン
    mybatisは優れたORMオープンソースフレームとして、強い柔軟性を持っています.mybatisの4つのコンポーネントExector、Sttement Handler、Parameeter Handler、ResultSetHandlerにプラグイン拡張を提供し、4つのコンポーネントをブロックして機能拡張を実現します.
    四つのコンポーネント
    Exector
    Exectorはmybatisのアクチュエータで、mybatisの下のjdbcコードの実行の下の端で、その中のudate、query、comit、rollbackなどの方法に対してブロックを行うことができて、そして強めます.
    Sttement Handler
    Sttement Handlerは主に私たちが使っているsql文のプレースホルダの値を設定し、また戻ります.その中のprepare、parameterize、batch、udates queryなどの方法をブロックすることができます.
    Parameter Handler
    Parameeter Handlerはパラメータプロセッサであり、ユーザに渡すパラメータをJDBC Sttementに変換するために必要なパラメータを担当しています.get ParameterObject、set Parameters方法をブロックして、開拓します.
    Result SetHandler
    Result SetHandlerは、JDBCから戻ったResult Setの結果集の対象をListタイプの集合に変換し、handleResult Sets、handleOutput Parameetersなどの方法をブロックし、拡張する.
    ユーザー定義プラグイン
    まずインターフェースを実現し、その中の方法を実現します.
    @Intercepts({
            @Signature(type = StatementHandler.class,
                    method = "prepare",
                    args = {Connection.class,Integer.class})
    })
    public class MyPlugin implements Interceptor {
        //    ,                ,      
        @Override
        public Object intercept(Invocation invocation) throws Throwable {
            System.out.println("        ");
            return invocation.proceed();
        }
        //           (  ),    ,  interceptChain (   ) 
        @Override
        public Object plugin(Object o) {
            Object wrap = Plugin.wrap(o, this);
            return wrap;
        }
        //        
        @Override
        public void setProperties(Properties properties) {
            System.out.println("            :"+properties);
        }
    }
    
    sql MapConfig.xmlにプラグインを設定します.
            
                
            
    
    締め括りをつける
    mybatisのプラグインの機能はとても強くて、私達は改ページ、分表、監視などの機能をすることができます.次のメモはmybatisのソースコード解析を記録します.