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)短名称可以用来引用任意含糊对象,必须唯一。

posted @ 2012-08-31 15:18  今天是昨天的明天  阅读(731)  评论(0)    收藏  举报