`
lzstone
  • 浏览: 94060 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

iBATIS3中管理SqlSession类

    博客分类:
  • java
阅读更多

public class IbatisSessionFactory {

      //配置文件
    private static String CONFIG_FILE_LOCATION = "SqlMapper.xml";

      //ThreadLocal存放当前线程中的SqlSession
    private static final ThreadLocal<SqlSession> threadLocal = new ThreadLocal<SqlSession>();
    private static SqlSessionFactory sessionFactory;
    private IbatisSessionFactory() {
    }
    //获取SqlSession
    public static SqlSession getSession() {
        SqlSession session = (SqlSession) threadLocal.get();

        if (session == null) {
            if (sessionFactory == null) {
                rebuildSessionFactory();
            }
            session = (sessionFactory != null) ? sessionFactory.openSession()
                    : null;
            threadLocal.set(session);
        }

        return session;
    }
    //构建SessionFactory
    public static void rebuildSessionFactory() {
        try {
            Reader reader = Resources.getResourceAsReader(CONFIG_FILE_LOCATION);
            sessionFactory = new SqlSessionFactoryBuilder().build(reader);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    //关闭SqlSession
    public static void closeSession() {
        SqlSession session = (SqlSession) threadLocal.get();
        threadLocal.set(null);

        if (session != null) {
            session.close();
        }
    }
    //将SessionFactory关闭
    public static void closeSessionFactory() {
        sessionFactory = null;
    }
}

0
0
分享到:
评论

相关推荐

    Ibatis3手册 Ibatis3参考手册

    Ibatis3是一款开源的持久层框架,它通过将SQL语句从程序代码中分离出来,并以XML配置文件的形式进行管理,从而实现了数据库访问的灵活控制。与完全面向对象的ORM框架(如Hibernate)不同,Ibatis3提供了一种更加轻量...

    打log4j日志-ibatis的sql输出

    要启用Ibatis的SQL日志记录,你需要在Ibatis的配置文件(通常为`mybatis-config.xml`)中添加以下设置: ```xml ``` 这里,`logImpl`设置指定了日志实现的类型,我们将其设置为"LOG4J",表示使用Log4j进行...

    ibatis3中使用jpa的方法进行查询

    本篇文章将探讨如何在Ibatis3中融合JPA的方法进行查询,以实现更加灵活的数据访问。 首先,理解Ibatis3的核心概念。Ibatis3的主要组成部分包括SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession以及Mapper...

    ibatis3资料-介绍

    - **生命周期管理**:正确管理`SqlSessionFactory`和`SqlSession`的生命周期是至关重要的,通常`SqlSessionFactory`应该在整个应用中只创建一个实例,而`SqlSession`则应在一次请求处理过程中创建和关闭。...

    ibatis 3 核心包

    9. **Mapper接口和Mapper XML文件**:在Ibatis 3中,推荐使用Mapper接口配合XML配置文件的方式进行开发,这样可以将SQL语句与Java代码完全分离,提高了代码的可读性和可维护性。Mapper接口定义了业务方法,XML文件则...

    ibatis官方中文文档

    3. **调用存储过程**:通过SqlSession对象的`call`方法执行存储过程,传入存储过程的ID和参数对象。 4. **处理结果**:存储过程的输出参数和返回结果集可以通过ResultHandler或者Map对象进行处理。 5. **事务管理*...

    ibatis3 GA javadoc

    iBatis3的事务管理与Spring等框架的集成紧密,可以通过SqlSession的beginTransaction、commit、rollback方法进行手动控制,也可以在配置中设置自动提交。Javadoc API中对这些事务管理相关的API进行了详述。 10. **...

    ibatis3应用实例(oracle数据库)

    1. 数据源配置:在Ibatis3中,我们需要配置Oracle的JDBC驱动,并指定数据库连接信息,如URL、用户名和密码等。 2. 映射文件:通过XML映射文件,定义SQL语句及其结果集映射。对于Oracle的特殊语法,如PL/SQL块,...

    iBATIS 3 变动

    4. **分离的SqlSession和SqlSessionFactory**:在iBATIS 3中,SqlSession对象不再负责创建和关闭自身,而是由SqlSessionFactory来管理和控制。这种设计遵循了单一职责原则,提高了代码的健壮性。 5. **Mapper接口**...

    第一个ibatis3工程

    《第一个iBatis3工程详解》 在Java开发领域,iBatis作为一个优秀的持久层框架,因其简单易用、灵活性高而备受青睐。...在实际项目中,结合Spring等框架,iBatis3能更好地帮助开发者管理数据库操作,提升开发效率。

    ibatis实现的学生信息管理示例

    在IT行业中,Ibatis是一个非常流行的轻量级持久层框架,尤其在Java开发中被广泛应用。这个名为“ibatis实现的学生信息管理示例”的项目,旨在帮助初学者理解并掌握如何利用Ibatis来处理数据库操作,如CRUD(创建、...

    spring ibatis 配置(包括事务管理)

    3. **配置SqlSessionFactory**:SqlSessionFactory是iBatis的核心对象,用于创建SqlSession。我们需要定义一个Bean来实例化它,通常通过SqlSessionFactoryBean实现。 ```xml ``` 4. **配置...

    ibatis

    - Spring对iBatis的支持(如`Spring对IBatis的支持.doc`)体现在Spring的IoC(Inversion of Control)容器可以管理iBatis的SqlSessionFactory和SqlSession实例,使得依赖注入更加方便。 - 声明式事务管理(如`...

    ibatis3源码+驱动

    这些类是iBatis3的主要入口点,它们负责构建整个框架的工作流程。`ibatis-3-core-src-3.0.0.208.zip`则是源码包,包含了完整的源代码,开发者可以通过阅读源码更深入地理解其内部机制。 1. ...

    ibatis事务控制案例

    Ibatis中的`SqlSession`对象是执行SQL语句并管理事务的载体。每次打开`SqlSession`,都会默认启动一个新的事务。当调用`SqlSession.commit()`或`SqlSession.rollback()`时,事务会被提交或回滚。如果你需要在一个`...

    ibatis3.1官方中文帮助文档

    3. **配置**:详细讲解了iBatis的配置文件(`ibatis-config.xml`),包括数据源配置、事务管理器配置、插件配置、类型别名、日志设置等。理解这些配置对于正确运行和调试应用至关重要。 4. **SQL映射文件**:这是...

    ibatis demo,ibatis例子,ibatis示例

    3. **SqlSession**:SqlSession是Ibatis的核心组件,它提供了执行SQL的方法,如`selectOne`、`insert`、`update`和`delete`。每次数据库操作后,记得关闭SqlSession以释放资源。 4. **动态SQL**:Ibatis的动态SQL...

    ibatiS架包

    1. iBATIS核心库:这是iBATIS的主要部分,包含SqlMapConfig.xml配置文件解析、SqlMapClient、SqlSession管理等核心类。 2. Oracle JDBC驱动:ojdbc.jar,用于建立Java应用程序与Oracle数据库之间的连接。 3. XML配置...

    iBATIS3_user_guide_manual.rar_ibatis手册

    5. **接口与Mapper**:在iBATIS3中,你可以定义一个Java接口,然后通过注解或者XML映射文件来关联SQL操作,这样可以保持业务逻辑与数据访问的整洁。 6. **SqlSession**:SqlSession对象是执行SQL和获取结果的主要...

    ibatisDemo 入门源码

    IbatisDemo是一个典型的基于Ibatis框架的入门示例,它为我们展示了如何在Java项目中使用Ibatis进行数据库操作。Ibatis,一个优秀的持久层框架,它允许开发者将SQL语句直接写在配置文件中,避免了JDBC的繁琐代码,...

Global site tag (gtag.js) - Google Analytics