之前用Spring+SpringMVC+mybits在DAO层写完接口接口之后再去写dao的实现层daoimpl(通过继承SqlSessionDaoSupport来进行实现)
public class DicDaoImpl extends SqlSessionDaoSupport implements DicDao { @Resource @Override public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) { // TODO Auto-generated method stub super.setSqlSessionFactory(sqlSessionFactory); } @Override public Map<String, List> loadDic() { // TODO Auto-generated method stub Map<String,List> maps=new HashMap<String,List>(); SqlSession session = getSqlSession(); String Statement="com.alumniAssociationmanager.mapper.DicMapper.queryTYZDB"; List<Dic_tyzdb> diclist=session.selectList(Statement); List<Dic_tyzdb> xb = new ArrayList<Dic_tyzdb>();//01性别 List<Dic_tyzdb> jzfs = new ArrayList<Dic_tyzdb>();//02捐赠方式 List<Dic_tyzdb> jzzt = new ArrayList<Dic_tyzdb>();//03捐赠状态 List<Dic_tyzdb> hdlx = new ArrayList<Dic_tyzdb>();//04活动类型 List<Dic_tyzdb> jzxmzt = new ArrayList<Dic_tyzdb>();//05捐赠项目状态 List<Dic_tyzdb> xyhdzt = new ArrayList<Dic_tyzdb>();//06活动状态 List<Dic_tyzdb> jyxxzt = new ArrayList<Dic_tyzdb>();//07就业信息状态 for(Dic_tyzdb d:diclist){ if(d.getZdlxdm().equals("01")){ xb.add(d); } if(d.getZdlxdm().equals("02")){ jzfs.add(d); } if(d.getZdlxdm().equals("03")){ jzzt.add(d); } if(d.getZdlxdm().equals("04")){ hdlx.add(d); } if(d.getZdlxdm().equals("05")){ jzxmzt.add(d); } if(d.getZdlxdm().equals("06")){ xyhdzt.add(d); } if(d.getZdlxdm().equals("07")){ jyxxzt.add(d); } } maps.put("xb", xb); maps.put("jzfs",jzfs); maps.put("jzzt", jzzt); maps.put("hdlx", hdlx); maps.put("jzxmzt",jzxmzt); maps.put("xyhdzt", xyhdzt); maps.put("jyxxzt", jyxxzt); return maps; } }
现在需要不写dao的实现层,而是dao层接口和与其相关的Mapper文件直接对应
那么需要满足几个条件,要不回造成很多错误
1.dao层接口和mapper接口中的方法需要相同,即方法名,传递的参数,返回的值的类型都要相同
2.mapper文件的命名空间需要和dao层接口的相同,例如:
dao层的接口为:
package com.lh.wsjd.dao; import java.util.List; import java.util.Map; public interface WSJD_RCXCDao { List getWSJD_RCXC(Map map); int updateWSJD_RCXC(Map map); }
那么mapper文件对应的为
<mapper namespace="com.lh.wsjd.dao.WSJD_RCXCDao">
<select id="getWSJD_RCXC" parameterType="Map" resultType="Map">
</select>
<update id="updateWSJD_RCXC" parameterType="Map">
</update>
</mapper>
这里dao层接口的全限定名和mapper文件的命名空间相同 ,即dao层接口需要和mapper文件在同一个包下。