MyBatis使用Builder模式來(lái)構(gòu)建SqlSessionFactory和SqlSession對(duì)象。下面是一個(gè)簡(jiǎn)單的示例,展示了如何使用Builder模式來(lái)構(gòu)建SqlSessionFactory對(duì)象:
public class SqlSessionFactoryBuilder {
private Configuration configuration;
public SqlSessionFactoryBuilder() {
this.configuration = new Configuration();
}
public SqlSessionFactory build(InputStream inputStream) {
XMLConfigBuilder xmlConfigBuilder = new XMLConfigBuilder(configuration);
xmlConfigBuilder.parse(inputStream);
return build();
}
public SqlSessionFactory build() {
return new DefaultSqlSessionFactory(configuration);
}
}
在上面的示例中,SqlSessionFactoryBuilder類包含一個(gè)Configuration對(duì)象,并提供了兩個(gè)build方法:一個(gè)接受InputStream參數(shù)用于解析配置文件,另一個(gè)不接受參數(shù)。build方法會(huì)返回一個(gè)SqlSessionFactory對(duì)象。
在實(shí)際使用時(shí),可以像下面這樣創(chuàng)建一個(gè)SqlSessionFactory對(duì)象:
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory sqlSessionFactory = builder.build(inputStream);
通過(guò)Builder模式,我們可以更加靈活地構(gòu)建SqlSessionFactory對(duì)象,可以根據(jù)需要定制化配置,使代碼更加清晰和易于維護(hù)。