SqlSessionFactoryBuilder是一个类,里面定义许多重载的build方法,通过build方法可以获取SqlSessionFactory对象,即SqlSession工厂实例
2.SqlSessionFactory
SqlSessionFactory是一个接口,看名字应该能明白是SqlSession工厂,里面定义了许多重载的openSession方法,用于获取SqlSession对象
3.SqlSession
SqlSession是一个很关键的接口,通过它我们可以执行发送SQL语句、获得Mapper实例等等。以它的第一个方法为例, <T> T selectOne(String statement); 方法名很容易理解,获取数据表的一条记录(在Java中对应返回一个实体类对象),前面的泛型对应的就是实体类的类型,关于String类型的参数statement,用过原生的JDBC操作数据库的应该不会陌生,在使用JDBC过程中,有个Statement对象,通过该对象的类似 ResultSet executeQuery(String sql) throws SQLException; 等方法可以发送SQL语句,方法里的字符串类型参数 sql 就是我们要发送的sql语句,而前面的String statement 同样也是代表我们的sql语句。总的来说,selectOne中的statement代表sql语句,JDBC中的statement是能发送sql语句的对象实例,不可混淆。
4.Mapper实例
Mapper实例就是我们在dao层定义的定义的接口实例,我们在service层中注入dao对象时关联的是该接口名,而实际上我们拿到了该接口实例也就是Mapper实例。而我们在web开发过程中,持久层的相关方法都定义在Mapper接口中,所以四个对象里我们在前面环境搭建篇比较容易发现的也就是这个Mapper实例所属接口,即PersonMappr接口。Mapper实例可以通过SqlSession的getMapper方法获得。
MyBatis配置文件