1.是什么
Mybatis是一款优秀的持久层框架,它支持定制化sql,存储过程以及高级映射。Mybatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。Mybatis可以使用简单的xml或注解来配置和映射原生类型,接口和Java的POJO(Plain Old Java Objects,普通老式Java对象)为数据库的记录。
2.探究已映射的sql语句
(1).namespace:命名空间
作用:a.利用更长的完全限定名将不同的语句隔离开来
b.实现接口绑定
(2).作用域和生命周期 错误的使用会导致非常严重的并发问题
SqlSessionFactoryBuilder
最佳作用域:方法作用域,可以被实例化,用户和丢弃。一旦创建了SqlSessionFactory,就不再需要它了。
SqlSessionFactory
最佳作用域:应用作用域,在运行期间不要重复创建多次(使用单例模式或者静态单例模式)。一旦创建就应该在应用的运行期间一直存在,没有任何理由丢弃它或重新创建另一个实例。
SqlSession
最佳作用域:请求或方法作用域。(SqlSession的实例不是线程安全的,因此是不能被共享的,每个线程都应该有自己的Sqlsession实例)。每次收到Http请求,就可以打开一个SqlSession,返回一个响应,就关闭它。
映射器实例(XXXMapper例如:BlogMapper)
最佳作用域:方法作用域。最大作用域:和请求它们的SqlSession相同。映射器实例应该在调用它们的方法中被请求,用过之后即可丢弃。