mybatis几个概念
1) mybatis命名空间
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.mybatis.mapper.StuCardMapper"> </mapper>
PS: mybatis命名空间是必须的,“com.mybatis.mapper.StuCardMapper”
官方提供的说明是:
命名空间
在之前版本的MyBatis中是可选项,非常混乱在使用上也没有帮助。现在,命名空间是必须的,而且有一个目的,它使用更长的完全限定名来隔离语句。
命名空间使得接口绑定成为可能,就像你看到的那样,如果之前不了解,那么现在你就会使用它们了,你应该按照下面给出示例的来练习,以免改变自己的想法。使用命名空
间,并将它放在合适的Java包空间之下,这将会使你的代码变得简洁,在很长的时间内提高MyBatis的作用。
命名解析:
为了减少输入量,MyBatis对所有的命名配置元素使用如下的命名解析规则,包括语句,结果映射,缓存等。
- 直接查找完全限定名(比如“com.mypackage.MyMapper.selectAllThings”),如果发现就使用。
- 短名称(比如“selectAllThings”)可以用来引用任意含糊的对象。而如果有两个或两个以上的(比如“com.foo.selectAllThings”和“com.bar.selectAllThings”),
那么就会得到错误报告,说短名称是含糊的,因此就必须使用完全限定名。
2) Mybatis的范围和生命周期
sqlSessionFactoryBuilder : 最佳范围是本地方法范围.
sqlSessionFactory : 一旦创建,在应用执行期间都存在,在应用期间不要重复建立多次。
sqlSession : 每个线程应该有自己的sqlSession实例。 最佳范围是请求和方法范围。不能将实例的引用放到一个类的静态字段,甚至实例字段中。不能放到任何类型的管理范围中,例如httpSession中。 sqlSession需要明确关闭。
mapper : 映射器是创建绑定映射语句的接口。最佳的范围是方法范围,不需要明确关闭。
小结:
命名空间的作用:
(1)使用更长的完全限定名来隔离语句。
(2)使接口绑定成为可能。
命名空间的解析方式:
(1)直接查找完全限定名,如果发现,则使用。
(2)短名称可以用来引用任意含糊对象,必须唯一。

浙公网安备 33010602011771号