MyBatis的持久化解决方案将用户从原始的JDBC访问中解放出来,开发无需关注底层数据库的连接、数据的访问、事务控制等操作,将应用层从底层的JDBCAPI中抽取出来。MyBatis中常用的对象有SqlSessionFactory和SqlSession。
1、SqlSessionFactory
SqlSessionFactory是MyBatis的关键对象,它是单个数据库映射关系经过编译后的内存镜像。SqlSessionFactory对象的实例可以通过SqlSessionBuilder对象获得,而SqlSessionBuilder则可以从XML配置文件或一个预先定制的Configuration的实例构建出SqlSessionFactory的实例。SqlSessionFactory是创建SqlSession的工厂。
2、SqlSession
SqlSession是执行持久化操作的对象,类似于JDBC中的Connection。它是应用程序与持久存储层之间执行交互操作的一个单线程对象。SqlSession对象完全包括以数据库为背景的所有执行SQL操作的方法,它的底层封装了JDBC连接,可以用SqlSession实例来直接执行已映射的SQL语句。SqlSession常用方法可以查看MyBatis的api文档:http://www.mybatis.org/mybatis-3/zh/apidocs/index.html
InputStream inputStream=Resources.getResouceAsStream("mybatis-config.xml");//读取配置文件
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);//配置文件作为参数由SqlSessionFactoryBuilder创建SqlSessionFactory
SqlSession sqlSession=sqlSessionFactory.openSession();//由SqlSessionFactory创建SqlSession