MyBatis别名

Posted miye

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyBatis别名相关的知识,希望对你有一定的参考价值。

转http://blog.csdn.net/qq_28885149/article/details/51694733

MyBatis中如果每次配置类名都要写全称也太不友好了,我们可以通过在主配置文件中配置别名,就不再需要指定完整的包名了。

别名的基本用法:

 

<configuration>  
    <typeAliases>  
      <typeAlias type="com.domain.Student" alias="Student"/>  
  </typeAliases>  
  ......  
</configuration>  

 

但是如果每一个实体类都这样配置还是有点麻烦这时我们可以直接指定package的名字, mybatis会自动扫描指定包下面的javabean,并且默认设置一个别名,默认的名字为: javabean 的首字母小写的非限定类名来作为它的别名(其实别名是不去分大小写的)。也可在javabean 加上注解@Alias 来自定义别名, 例如: @Alias(student)

<typeAliases>  
    <package name="com.domain"/>  
</typeAliases>  
 

 

这样,在Mapper中我们就不用每次配置都写类的全名了,但是有一个例外,那就是namespace。

 

namespace属性

在MyBatis中,Mapper中的namespace用于绑定Dao接口的,即面向接口编程。

它的好处在于当使用了namespace之后就可以不用写接口实现类,业务逻辑会直接通过这个绑定寻找到相对应的SQL语句进行对应的数据处理

 

student = (Student) session.selectOne("com.domain.Student.selectById", new Integer(10));

 

 

<mapper namespace="com.domain.Student">    
  
    <select id="selectById" parameterType="int" resultType="student">    
       select * from student where id=#{id}    
    </select>  
       
</mapper>  

 

以上是关于MyBatis别名的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis查询mysql数据返回null

MyBatis关联查询,表字段相同,resultMap映射问题的解决办法

Mybatis为实体类定义别名typeAliases

mybatis的属性优化与别名优化

mybatis配置文件中的标签怎么不能用

mybatis-03