業務功能:
把乙個表按照月份分為12個,命名user_01、user_02、....user_12。
select * from user where age = #
輸入當前月份查詢的時候,自動把邏輯表名改成對應的月份表。例如輸入202005,此時需要把表名修改為
select * from user_05 where age=5
實現:
註冊外掛程式:
mybatis-config.xml新增:
外掛程式(乙個實現當前功能的簡單外掛程式):
@intercepts(),
resulthandler.class, cachekey.class, boundsql.class})
})public class querysliceinterceptor implements interceptor else
//反射獲取動態引數
string sql = boundsql.getsql();
string querysql = getquerysql(sql, parameter);
parameter = integer.valueof(string.valueof(parameter).substring(4));
list resultlist = executor.query(ms, parameter, rowbounds, resulthandler, null, pageboundsql);
return resultlist;
}@override
public object plugin(object o)
@override
public void setproperties(properties properties)
public string getquerysql(string sql, object param)
}
測試類:
public class test
}
結果:
user(id=1, name=小明, age=5)
手寫自己的MyBatis框架 支援外掛程式
定義了乙個 intercepts 註解,目前還只能攔截executor 的方法,所以屬性只要配置方法名稱。定義interceptor 介面,是所有自定義外掛程式必須實現的介面。定義interceptorchain 容器,用來存放解析過的 在configuration 中建立executor 的時候,...
js手寫日曆外掛程式
doctype html html lang en head meta charset utf 8 meta name viewport content width device width,initial scale 1.0 title 日曆 title style table td,th sty...
mybatis 外掛程式原理
1 mybatis初始化 每個基於 mybatis 的應用都是以乙個 sqlsessionfactory 的例項為中心的。sqlsessionfactory 的例項可以通過 sqlsessionfactorybuilder 獲得。而 sqlsessionfactorybuilder 則可以從 xml...