zoukankan      html  css  js  c++  java
  • 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/
    版权:本文版权归作者和博客园共有
    转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任
  • 相关阅读:
    这些年伴随我的一些好习惯
    求一个整数的二进制中1的个数
    这些 iOS 面试基础题目,你都深入了解吗?
    HTML5 input placeholder 颜色修改示例
    微软雅黑 在css里怎么写
    CSS3实现边框锯齿效果
    jquery中attr和prop的区别
    jquery怎么获取radio选中的值
    动态生成元素动作绑定,jquery 1.9如何实现
    js写的5秒钟倒计时跳转
  • 原文地址:https://www.cnblogs.com/blayn/p/12829898.html
Copyright © 2011-2022 走看看