模板模式

模板模式

 

[DaoTemplate.java]
        package com.it18zhang.mybatisdemo.dao;

        import com.it18zhang.mybatisdemo.util.Util;
        import org.apache.ibatis.session.SqlSession;

        /**
         * 模板类
         */
        public class DaoTemplate {
            /**
             * 执行
             */
            public static Object execute(MybatisCallback cb){
                SqlSession s = null;
                try {
                    s = Util.openSession();
                    Object ret = cb.doInMybatis(s);
                    s.commit();
                    return ret ;
                } catch (Exception e) {
                    Util.rollbackTx(s);
                } finally {
                    Util.closeSession(s);
                }
                return null ;
            }
        }

        [MybatisCallback.java]
        package com.it18zhang.mybatisdemo.dao;

        import org.apache.ibatis.session.SqlSession;

        /**
         * 回调接口
         */
        public interface MybatisCallback {
            public Object doInMybatis(SqlSession s);
        }