zoukankan      html  css  js  c++  java
  • MyBatis单列工厂的实现

    MyBatis单列工厂的实现

    SqlSessionFactoryUtils

    package com.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.InputStream;
    
    /**
     * @author: XDZY
     * @date: 2018/8/8 14:50
     * @description: SessionFactory工厂
     */
    public class SqlSessionFactoryUtils {
        private final static Class<SqlSessionFactoryUtils> LOCK = SqlSessionFactoryUtils.class;
    
        private static SqlSessionFactory sqlSessionFactory = null;
    
        private SqlSessionFactoryUtils() {
        }
    
        public static SqlSessionFactory getSqlSessionFactory() {
            synchronized (LOCK) {
                if (sqlSessionFactory != null) {
                    return sqlSessionFactory;
                }
                String resource = "com/mybatis-config.xml";
                InputStream inputStream;
                try {
                    inputStream = Resources.getResourceAsStream(resource);
                    sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
                } catch (IOException e) {
                    e.printStackTrace();
                    return null;
                }
                return sqlSessionFactory;
            }
        }
    
        public static SqlSession openSqlSession() {
            if (sqlSessionFactory == null) {
                getSqlSessionFactory();
            }
            return sqlSessionFactory.openSession();
        }
    }

    Test

    package com.main;
    
    import com.mapper.RoleMapper;
    import com.pojo.Role;
    import com.utils.SqlSessionFactoryUtils;
    import org.apache.ibatis.session.SqlSession;
    
    /**
     * @author: XDZY
     * @date: 2018/8/8 15:12
     * @description: 运行入口
     */
    public class TestMain {
        public static void main(String[] args) {
            SqlSession sqlSession = null;
            try {
                sqlSession = SqlSessionFactoryUtils.openSqlSession();
                RoleMapper roleMapper = sqlSession.getMapper(RoleMapper.class);
                Role role = roleMapper.getRole(1L);
                System.out.println(role.getRoleName());
            } finally {
                if (sqlSession != null) {
                    sqlSession.close();
                }
            }
        }
    }
  • 相关阅读:
    linux下拼接字符串的代码
    postgresql实现插入数据返回当前的主键ID
    记录一个linux下批处理的代码
    iptables
    mybatis获得执行insert的返回值
    git commit之后撤销
    仿照CIFAR-10数据集格式,制作自己的数据集
    C/C++ 在处理文件所在路径下创建子目录
    C/C++ 图像二进制存储与读取
    C/C++ 文件路径解析
  • 原文地址:https://www.cnblogs.com/xdzy/p/9638832.html
Copyright © 2011-2022 走看看