• Mybatis学习之自定义持久层框架(四) 自定义持久层框架:生产sqlSession


    前言

     上一回我们完成了数据库配置文件的读取和解析工作,有了这些准备工作,我们就可以与数据库创建连接和会话了,所谓sqlSession就是数据库的会话,一切增删查改操作都是在与数据库的会话中完成,下面我们来讲一些这方面的知识。

    生产sqlSession、与数据库进行会话

    这里我们会使用工厂模式,我们会用到三个类:SqlSessionFactoryBuilder(用于创建工厂对象)、SqlSessionFactory(sqlSession的工厂接口)和DefaultSqlSessionFactory(sqlSession的实现类,负责生产sqlSession),这几个类都创建与“sqlSession”包下,相关的代码如下所示:

    1 package com.hardy.sqlSession;
    2 
    3 public interface SqlSessionFactory {
    4 
    5     public SqlSession openSession();
    6 }
     1 package com.hardy.sqlSession;
     2 
     3 import com.hardy.pojo.Configuration;
     4 
     5 public class DefaultSqlSessionFactory implements SqlSessionFactory {
     6 
     7     private Configuration configuration;
     8 
     9     public DefaultSqlSessionFactory(Configuration configuration) {
    10         this.configuration = configuration;
    11     }
    12 
    13     @Override
    14     public SqlSession openSession() {
    15         return new DefaultSqlSession(configuration);
    16     }
    17 
    18 }
     1 package com.hardy.sqlSession;
     2 
     3 import com.hardy.config.XMLConfigBuilder;
     4 import com.hardy.pojo.Configuration;
     5 import org.dom4j.DocumentException;
     6 
     7 import java.beans.PropertyVetoException;
     8 import java.io.InputStream;
     9 
    10 public class SqlSessionFactoryBuilder {
    11 
    12     private Configuration configuration;
    13 
    14     public SqlSessionFactoryBuilder() {
    15         this.configuration = new Configuration();
    16     }
    17 
    18     public SqlSessionFactory builder(InputStream in) throws ClassNotFoundException, PropertyVetoException, DocumentException {
    19         // 1、使用dom4j解析配置文件,讲解析出来的内容封装到Configuration中
    20         XMLConfigBuilder xmlConfigBuilder = new XMLConfigBuilder(configuration);
    21         Configuration configuration = xmlConfigBuilder.parseConfiguration(in);
    22 
    23         // 2、创建SqlSessionFactory对象:工厂类(生产sqlSession)
    24         DefaultSqlSessionFactory defaultSqlSessionFactory = new DefaultSqlSessionFactory(configuration);
    25 
    26         return defaultSqlSessionFactory;
    27 
    28     }
    29 
    30 }

    总结

     今天我们完成了生产sqlSession的工作,到这里,我们已经可以连接数据库并与数据库进行会话了,那么接下来就是要制定会话的内容了。与数据库的会话,无非是增删查改,下一篇文章,我们会对CRUD操作的增删查改等方法进行封装。

    作者:blayn
    出处:https://www.cnblogs.com/blayn/
    版权:本文版权归作者和博客园共有
    转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任
  • 相关阅读:
    按照外形结构划分,服务器可分为塔式、机架式、刀片式三种类型
    Nmap和Zenmap详解
    Windows server 2012 出现大量无名已断开连接用户
    神州网信政府版 Windows 10
    NoSQL之redis---RDB与AOF
    NoSQL之redis之哨兵服务
    NoSQL之redis主从(结构片)
    NoSQL之redis高可用及管理集群
    mysql架构篇之引擎与事务介绍
    mysql架构篇之PXC
  • 原文地址:https://www.cnblogs.com/blayn/p/12829898.html
Copyright © 2020-2023  润新知