逆向工程生成mapper.java和mapper.xml文件在以后的项目进度中,有可能会因为数据库表字段的新增或其他原因发生改变,而我们把自己写的SQL放到mapper.xml文件中,每次使用逆向就会覆盖,或者修改起来比较麻烦。因而自定义dao继承mapper.java接口,然后自定dao.xml文件写自己的一些SQL就可以避免这个问题。而这又涉及到mapper.xml 和 Dao.xml文件是不是也有继承关系,这个我也不曾得知,因为我此前也百度了无数次mapper.xml继承的方法,例如使用相同的namespace命名空间来检测dao能否使用mapper中的SQL或者是resultMap之类,结果都是不行,可能是我有些地方还没搞懂吧。
####后来呢,我就只使用自定义的Dao接口继承了自动生成的mapper接口,而在自定义的Dao.xml文件中写自己的SQL,其中Dao里的resultMap引用了mapper.xml自动生成的,也是可以映射到,只是需要全限定名resultMap=“cn.zzb.mapper.DicTypeMapper.BaseResultMap”。
接口:
public interface DicTypeDao extends DicTypeMapper
Dao.xml:
<mapper namespace="cn.zzb.dao.DicTypeDao">
<select id="findDicTypeByCode" parameterType="java.lang.String" resultMap="cn.zzb.mapper.DicTypeMapper.BaseResultMap">
select *from dictype
where code = #{cod