SqlSessionFactory是MyBatis的核心对象,用于初始化MyBatis,读取配置文件,创建SqlSession对象,SqlSessionFactory是全局对象,为保证其在应用中全局唯一,要使用static进行初始化
SqlSession是MyBatis操作数据库的核心对象,SqlSession使用JDBC方式与数据库交互,同时提供了数据表的CRUD(增删改查)对应的api方法
//SqlSessionFactory的使用
@Test public void testSqlSessionFactory() throws IOException { //利用Reader加载classpath下的mybatis-config.xml核心配置文件
Reader reader = Resources.getResourceAsReader("mybatis-config.xml"); //初始化SqlSessionFactory对象,同事解析mybatis-config.xml文件
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); System.out.println("SessionFactory加载成功"); SqlSession sqlSession=null; try{ //创建SqlSession对象,SqlSession是JDBC扩展类,用于数据库交互
sqlSession = sqlSessionFactory.openSession(); //创建数据库连接(测试用)
Connection connection = sqlSession.getConnection(); System.out.println(connection); }catch (Exception e){ e.printStackTrace(); }finally { if(sqlSession != null){ //如果dataSource的type=“POOLED”,代表使用连接池,close是将连接回收到连接池中 //如果type=“UNPOOLED”,代表直连,close则会调用Connection.close()方法关闭连接
sqlSession.close(); } } }