前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >delphi 数据库连接池-Spring事务管理 | 数据库连接池流程原理分析

delphi 数据库连接池-Spring事务管理 | 数据库连接池流程原理分析

作者头像
囍楽云
发布2022-12-29 11:22:03
4760
发布2022-12-29 11:22:03
举报
文章被收录于专栏:囍楽云博客

import com.wei.Mapper.UserMapper;

代码语言:javascript
复制
    import com.wei.pojo.User;
    import org.junit.Test;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    import java.util.List;
    public class MyTest {
        @Test
        public void test(){
            //解析beans.xml文件,生成管理相应的Bean对象,创建 Spring 的 IOC 容器
            ApplicationContext context = new ClassPathXmlApplicationContext("applicicationContext.xml");
            //getBean:参数即为Spring配置文件中的bean的id
            //从IOC容器中获取 bean 的实例
            UserMapper userMapper = context.getBean("userMapper", UserMapper.class);
            List userList = userMapper.selectUser();
            for (User user : userList) {
                System.out.println(user);
            }
        }
    }

  总结

  配置事务原因:

  是的核心对象,用于初始化,读取配置文件,创建对象delphi 数据库连接池,是全局对象,为保证其在应用中全局唯一delphi 数据库连接池,要使用static进行初始化

  是操作数据库的核心对象,使用JDBC方式与数据库交互,同时提供了数据表的CRUD(增删改查)对应的api方法

  导入jar包

  格式:

代码语言:javascript
复制
    org.mybatis
    mybatis
    x.x.x
代码语言:javascript
复制
     org.mybatis
     mybatis
     3.5.2

  XML 中构建

   String resource = "org/mybatis/example/mybatis-config.xml";

代码语言:javascript
复制
    InputStream inputStream = Resources.getResourceAsStream(resource);
    SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

  获得 的实例

  既然有了 ,顾名思义,我们可以从中获得 的实例。 提供了在数据库执行 SQL 命令所需的所有方法。你可以通过 实例来直接执行已映射的 SQL 语句

   SqlSession sqlSession = sessionFactory.openSession(true);

  代码实现

   package com.wei.utils;

代码语言:javascript
复制
    import org.apache.ibatis.io.Resources;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    import java.io.IOException;
    import java.io.InputStream;
    //sqlSessionFactory  构造  sqlSession
    public class MybatisUtils {
        //提升作用域:定义SqlSessionFactory全局变量
        private static SqlSessionFactory sqlSessionFactory;
    //静态代码块:执行优先级高于非静态的初始化块,它会在类初始化的时候执行一次,执行完成便销毁,它仅能初始化类变量,即static修饰的数据成员
        static {    
            try {
                //使用Mybatis第一步:获取sqlSessionFactory对象
                
                //定义核心配置文件
                String resource = "mybatis-config.xml";
                //通过IO流加载resource的mybatis-config.xml核心配置文件文件
                InputStream inputStream = Resources.getResourceAsStream(resource);
                //通过build加载inputStream
                sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        //既然有了 SqlSessionFactory,顾名思义,我们可以从中获得 SqlSession 的实例。
        //SqlSession 提供了在数据库执行 SQL 命令所需的所有方法。
        //你可以通过 SqlSession 实例来直接执行已映射的 SQL 语句
        public static SqlSession getSqlSession(){
            return sqlSessionFactory.openSession(true);        //此处设置参数为true时,表示开启自动提交事物功能
        }
    }

  ▌作用域(Scope)和生命周期

  所有代码中都遵循这种使用模式,可以保证所有数据库资源都能被正确地关闭

  lder(构造器) (工厂) (会话)

本文共 474 个字数,平均阅读时长 ≈ 2分钟

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档