在mybatis通过执行sql语句的方式是,用getSqlSession().xxx(param,..)方法来调用,
其中第一个参数就是dao mapper.xml文件的命名空间.id
1 package com.xxx.cms.activity.dao.impl; 2 3 public class ActivityDaoImpl extends BaseDao implements ActivityDao { 4 //获得class名, 即 ActivityDaoImpl 5 public String getSimpleNameSpace() { 6 return this.getClass().getSimpleName(); 7 } 8 9 //获得class全文件名, 包名.class名 10 // 即com.xxx.cms.activity.dao.impl.ActivityDaoImpl 11 public String getNameSpace() { 12 return this.getClass().getName(); 13 } 14 15 // sql调用 16 int id = (int) (Integer) getSqlSession().selectOne(getNameSpace() + ".getActivityComingId"); 17 18 }
1 //直接以class名为命名空间 2 <mapper namespace="ActivityDaoImpl"> 3 4 5 <!-- 以class全路径为命名空间,这样可以避免两个class文件名相同的问题 --> 6 <mapper namespace="com.teshehui.cms.activity.dao.impl.ActivityDaoImpl">