前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mybatis的<mapper>标签 namespace属性说明

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

作者头像
浩Coding
发布2019-07-03 15:04:10
6.6K0
发布2019-07-03 15:04:10
举报
文章被收录于专栏:浩Coding浩Coding

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

代码语言:javascript
复制
<configuration>
    <typeAliases>
      <typeAlias type="com.hao.User" alias="User"/>
  </typeAliases>
</configuration>

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

代码语言:javascript
复制
<typeAliases>
    <package name="com.domain"/>
</typeAliases>

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

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

假设有个映射文件:

代码语言:javascript
复制
<mapper namespace="com.dao.IdCardDao">
  <select id="selectCodeById" parameterType="Integer" resultType="com.po.Idcard">
    select * from idcard where id=#{id}
  </select>
</mapper>

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

代码语言:javascript
复制
@Repository("idCardDao")
@Mapper
public interface IdCardDao {
  public Idcard selectCodeById(Integer i);
}
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 浩Coding 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档