• 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();
                }
            }
        }
    }
  • 相关阅读:
    requests实现接口自动化(三)
    api 25 PopupWindow会占据整个屏幕
    INSTALL_FAILED_USER_RESTRICTED
    事件分发_水平滑动和垂直冲突解决
    MPAndroidChart market右边显示不全问题
    SimpleDateFormat 取当前周的周一和周日的日期,当前月第一个和最后一天的日期
    Callable,Runnable比较及用法
    Android系统启动流程
    debug-stripped.ap_' specified for property 'resourceFile' does not exist
    Theme.AppCompat.Light的解决方法
  • 原文地址:https://www.cnblogs.com/xdzy/p/9638832.html
Copyright © 2020-2023  润新知