之前用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文件在同一個包下。