首页 > 其他分享 >009.初始化工具类MyBatisUtil

009.初始化工具类MyBatisUtil

时间:2022-11-01 20:34:13浏览次数:91  
标签:MyBatisUtil 初始化 ibatis SqlSession session static import 009 MyBatisUtils

1.MyBatisUtils工具类,创建全局唯一的SqlSessionFactory对象(src/main/java/com/imooc/mybatis/utils/MyBatisUtils.java)

package com.imooc.mybatis.utils;

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.Reader;

/**
 * MyBatisUtils工具类,创建全局唯一的SqlSessionFactory对象
 */
public class MyBatisUtils {
    //利用static(静态)属于类不属于对象,且全局唯一
    private static SqlSessionFactory sqlSessionFactory = null;
    //利用静态块在初始化类时实例化sqlSessionFactory
    static {
        Reader reader = null;
        try {
            reader = Resources.getResourceAsReader("mybatis-config.xml");
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
        } catch (IOException e) {
            e.printStackTrace();
            //初始化错误时,通过抛出异常ExceptionInInitializerError通知调用者
            throw new ExceptionInInitializerError(e);
        }
    }

    /**
     * openSession 创建一个新的SqlSession对象
     * @return SqlSession对象
     */
    public static SqlSession openSession(){
        return sqlSessionFactory.openSession();
    }

    /**
     * 释放一个有效的SqlSession对象
     * @param session 准备释放SqlSession对象
     */
    public static void closeSession(SqlSession session){
        if(session != null){
            session.close();
        }
    }
}

2.测试MyBatisUtils

   /**
     * MyBatisUtils使用指南
     *
     * @throws Exception
     */
    @Test
    public void testMyBatisUtils() throws Exception
    {
        SqlSession sqlSession = null;
        try
        {
            sqlSession = MyBatisUtils.openSession();
            Connection connection = sqlSession.getConnection();
            System.out.println(connection);
        }
        catch (Exception e)
        {
            throw e;
        }
        finally
        {
            MyBatisUtils.closeSession(sqlSession);
        }
    }

 

标签:MyBatisUtil,初始化,ibatis,SqlSession,session,static,import,009,MyBatisUtils
From: https://www.cnblogs.com/LLL0617/p/16849041.html

相关文章

  • c++ new数组同时初始化
    今天的小目标:先来一个亿,咳咳咳.实现:new一个数组,成员全部用1初始化:int*p=newint[10](1);应该是编译不过的哈!.再来:int*p=newint[10];for(inti=0;......
  • mysql8初始化及账户管理
    查看初始密码:grep'temporarypassword'mysqld.logmysql>alteruser'root'@'localhost'identifiedby'密码';mysql>updatemysql.usersethost="%"whereuser="r......
  • int[] 的初始化
    一:int[]arr1=newint[1];//必须初始化数量,还有不初始化数字的arr1[0]=1;System.out.println("array1:"+Arrays.toString(arr1));二:int[]arr2={1,......
  • HashMap初始化容量
    HashMap初始化容量《阿里巴巴Java开发规约》中有提到:【推荐】集合初始化时,指定集合初始值大小。说明:HashMap使用如下构造方法进行初始化,如果暂时无法确定集合大小,那么指定......
  • tomcat报错,提示Several ports (8005, 8080, 8009) required by Tomcat v8.5 Server at
    eclipse运行web项目报错提示:Severalports(8005,8080,8009)requiredbyTomcatv8.5Serveratlocalhostarealreadyinuse.Theservermayalreadyberunningi......
  • 初始化centos环境脚本
    #!/bin/bashecho"java环境初始化开始"#功能描述:Centos8.5系统自动初始化脚本#自动配置:IP地址\Yum源\docer\docker-composev2.7.0\ZSH\Portainer\Cockpit\zabbix-agen......
  • Java学习——初始化对象
    一、如何使用通过注释@PostConstruct标明是初始化方法@PostConstructpublicvoidinit(){}二、注意事项初始化方法和构造方法不同,构造方法只是生成了一个对象,而初始......
  • SpringMVC源码-DispatcherServlet初始化
    web容器启动后会实例化Servlet,会执行Servlet的init方法且只会执行一次。后续调用doService处理客户请求。DispatcherServlet的构造方法publicDispatcherServlet(){ su......
  • 0096-Go-错误处理
    环境Time2022-08-24Go1.19前言说明参考:https://gobyexample.com/errors目标使用Go语言的错误处理。错误处理packagemainimport("errors""fmt......
  • 0097-Go-协程
    环境Time2022-08-24Go1.19前言说明参考:https://gobyexample.com/goroutines目标使用Go语言的协程。启动函数协程packagemainimport("fmt""ti......