
在学习MyBatis的过程中,不仅要掌握其设计理念,还需深入了解其中使用的设计模式。本文总结了在学习MyBatis时所接触到的7种设计模式,并将持续更新。
1、建造者模式(Builder模式)示例:
建站之星网站建设系统是一种全新的互联网应用模式,它一改过去传统的企业建站方式,不需企业编写任何程序或网页,无需学习任何相关语言,也不需第三方代写或管理网站,只需应用系统所提供的各种强大丰富的功能模块,即可轻松生成企业个性化的精美网站。 SiteStar v2.3本地软件体验包说明:为方便客户能够第一时间体验智能建站软件的强大功能,我们特别提供了本地软件体验包,您只需下载下来并安装在您的计算机上(和
代码语言:javascript代码运行次数:0运行复制```javascript public class Book { private Integer id; private String name; public Book() { } public Book(Integer id, String name) { this.id = id; this.name = name; } @Override public String toString() { return "Book{" + "id=" + id + ", name='" + name + '}'; } // 使用内部类实现建造者模式 public static class Builder { private Integer id; private String name; public Builder id(Integer id) { this.id = id; return this; } public Builder name(String name) { this.name = name; return this; } public Book build() { return new Book(id, name); } } } /**
- 通过这种方式实现了链式创建,与Lombok的@Builder注解功能类似。 */ public class BuilderTest { public static void main(String[] args) { Book book = new Book.Builder().id(1).name("三国").build(); System.out.println(book.toString()); } }
MyBatis中对Builder模式的应用不仅仅限于内部类的方式。例如:
代码语言:javascript代码运行次数:0运行复制```javascript /**
- 根据不同的输入参数构建SqlSessionFactory工厂对象。
- 最终会调用这个build方法,创建SqlSessionFactory的实现类 */ public class SqlSessionFactoryBuilder { public SqlSessionFactory build(Reader reader) { return build(reader, null, null); } public SqlSessionFactory build(Reader reader, String environment) { return build(reader, environment, null); } public SqlSessionFactory build(Reader reader, Properties properties) { return build(reader, null, properties); } public SqlSessionFactory build(Reader reader, String environment, Properties properties) { XMLConfigBuilder parser = new XMLConfigBuilder(reader, environment, properties); return build(parser.parse()); } public SqlSessionFactory build(InputStream inputStream) { return build(inputStream, null, null); } public SqlSessionFactory build(InputStream inputStream, String environment) { return build(inputStream, environment, null); } public SqlSessionFactory build(InputStream inputStream, Properties properties) { return build(inputStream, null, properties); } public SqlSessionFactory build(InputStream inputStream, String environment, Properties properties) { XMLConfigBuilder parser = new XMLConfigBuilder(inputStream, environment, properties); return build(parser.parse()); } // 最终会调用这个build方法,创建SqlSessionFactory的实现类 public SqlSessionFactory build(Configuration config) { return new DefaultSqlSessionFactory(config); } }









