资讯

展开

Mybatis的<mapper>标签 namespace属性说明

作者:快盘下载 人气:

众所周知,Mybatis中有别名设置。比如在主配置文件中用 <typeAliases> 元素设置类的别名,这样就不用每次指定完整的包名了,十分方便。

<configuration>
    <typeAliases>
      <typeAlias type="com.hao.User" alias="User"/>
  </typeAliases>
</configuration>

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

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

其实还有一个更好的解决方法,那就是使用namespace属性。

在Mybatis中,映射文件中的namespace是用于绑定Dao接口的,即面向接口编程。当你的namespace绑定接口后,就可以不用写接口实现类,Mybatis会通过该绑定自动找到对应要执行的SQL语句,如下例子。

假设有个映射文件:

<mapper namespace="com.dao.IdCardDao">
  <select id="selectCodeById" parameterType="Integer" resultType="com.po.Idcard">
    select * from idcard where id=#{id}
  </select>
</mapper>

这个时候我们可以只定义一个Dao接口就行,不用写接口的实现类,需要时候调用Dao接口的方法就行:

@Repository("idCardDao")
@Mapper
public interface IdCardDao {
  public Idcard selectCodeById(Integer i);
}

加载全部内容

相关教程
猜你喜欢
用户评论
快盘暂不提供评论功能!