类的介绍

1. Resources类

    Resources 类为从类路径中加载资源,提供了易于使用的方法。
    String resource = “mybatis-config.xml”; 
    InputStream in = Resources.getResourceAsStream(resource );

2. SqlSessionFactoryBuilder 类

     SqlSessionFactoryBuilder这个类的作用就是为了创建SqlSessionFactory的,一旦SqlSessionFactory创建完毕,
     SqlSessionFactoryBuilder就没有存在的价值了,就应该被销毁。所以SqlSessionFactoryBuilder最好的作用域
     就是方法体内(及作为一个本地方法变量),用完即销毁。生命周期也就是调用方法的开始到结束。
     
     创建SqlSessionFactory对象
        SqlSessionFactoryBuilder builder  = new SqlSessionFactoryBuilder();
        SqlSessionFactory factory = builder.build(in);

3. SqlSessionFactory 类

    重量级对象, 程序创建一个对象耗时比较长,使用资源比较多,在整个项目中,有一个就够用了。 SqlSessionFactory作用: 获取SqlSession对象。
    SqlSession sqlSession = factory.openSession();
        openSession()方法说明:
            1. openSession() :无参数的, 获取是非自动提交事务的SqlSession对象
            2. openSession(boolean): 
                    openSession(true)  获取自动提交事务的SqlSession.
                    openSession(false)  非自动提交事务的SqlSession对象
                    
    SqlSessionFactory一旦被创建,就会存在于程序的整个生命周期,也就是只要程序不结束,它就会一直存在,
    你不会去主动销毁它,因为干嘛要销毁它呢?所以,我们要做的就是不要重复的去创建SqlSessionFactory!
    单例模式很适合这种情况!

4.SqlSession类

    SqlSession接口 :定义了操作数据的方法 例如 selectOne() ,selectList() ,insert(),update(), delete(), commit(), rollback()
    SqlSession接口的实现类DefaultSqlSession。
    
    SqlSession实例是不能共享的,并且不是安全的,所以它的最好的作用域应该是方法体内,
    或者是一次请求时,即method或者request,也就是说再收到一次Http请求时,就应该创建一次
    一个SqlSession实例,那么也就是说在每次使用完之后我们都需要把它关闭,即调用.close();