目录
(1)SqlSessionFactoryBuilder
SqlSession工厂构建者对象,使用构造者模式创建SqlSession工厂对象
(2)SqlSessionFactory
SqlSession工厂,使用工厂模式创建SqlSession对象
(3)SqlSession
该对象可以操作数据库,也可以使用动态代理模式创建持久层接口的代理对象操作数据库
(4)Mapper
持久层接口的代理对象,他具体实现了持久层接口,用来操作数据库
对于第三点的SqlSession对象可以直接操作数据库也可以通过代理对象操作数据库,这里我具体举例分析:
-
- // (1)读取核心配置文件
- InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");
- // (2)创建SqlSessionFactoryBuilder对象
- SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
- // (3)SqlSessionFactoryBuilder对象获取SqlSessionFactory对象
- SqlSessionFactory factory = builder.build(is);
- // (4)SqlSessionFactory对象获取SqlSession对象
- SqlSession session = factory.openSession();
- // (5)SqlSession直接操作数据库
- List
users = session.selectList("com.itbaizhan.mapper.UserMapper.findAll"); - users.forEach(System.out::println);
- // (6)关闭资源
- session.close();
- is.close();
- InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");
- // (2)创建SqlSessionFactoryBuilder对象
- SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
- // (3)SqlSessionFactoryBuilder对象获取SqlSessionFactory对象
- SqlSessionFactory factory = builder.build(is);
- // (4)SqlSessionFactory对象获取SqlSession对象
- SqlSession session = factory.openSession();
- // (5)SqlSession对象获取代理对象
- UserMapper userMapper = session.getMapper(UserMapper.class);
- // (6)代理对象执行方法
- List
all = userMapper.findAll(); - all.forEach(System.out::println);
-
-
- // (7)释放资源
- session.close();
- is.close();
(1)创建SqlSessionFactoryBuilder对象
(2)SqlSessionFactoryBuilder对象创建SqlSessionFactory对象:构造者模式
(3)SqlSessionFactory对象生产了SqlSession对象:工厂模式
(4)SqlSession对象创建了持久层接口的代理对象:动态代理模式
(5)代理对象操作数据库