Mybatis的SqlSession和SqlSessionFactory
SqlSession:
处理mybatis增删改查及事物的接口,select , update , delete , insert , commit , rollback , close , flushStatements等
SqlSessionFactory:工厂设计模式,创建SqlSession的工厂。
SqlSessionFactory是MyBatis的关键对象,单个数据库映射关系经过编译后的内存镜像。
SqlSessionFactory对象的实例可以通过SqlSessionFactoryBuilder对象类获得,
而SqlSessionFactoryBuilder则可以从XML配置文件或一个预先定制的Configuration的实例构建出SqlSessionFactory的实例.
(1)、定义一个Configuration对象,其中包含数据源、事务、mapper文件资源以及影响数据库行为属性设置settings,即(配置文件,实体类,xml中写好的sql语句)
public void selectByid() throws IOException { //以查询一条记录为例
//加载sqlMapConfig.xml文件
InputStream inputStream = Resources.getResourceAsStream("mybatis/SqlMapConfig.xml");
(2)、通过配置对象,则可以创建一个SqlSessionFactoryBuilder对象
SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder();
(3)、通过 SqlSessionFactoryBuilder 获得SqlSessionFactory 的实例。
SqlSessionFactory sqlSessionFactory=sqlSessionFactoryBuilder.build(inputStream);
(4)、SqlSessionFactory 的实例可以获得操作数据的SqlSession实例,通过这个实例对数据库进行
SqlSession sqlSession=sqlSessionFactory.openSession();
(5)创建mapper接口的实例
EmpMapper mapper = sqlSession.getMapper(EmpMapper.class);
//使用接口
Emp emp =mapper.selectById(1001);
System.out.println("emp=="+emp);
}