mybatis 多个dao重名,根据namespace解析

时间:2023-03-09 15:35:45
mybatis 多个dao重名,根据namespace解析

  在mybatis通过执行sql语句的方式是,用getSqlSession().xxx(param,..)方法来调用,

    其中第一个参数就是dao mapper.xml文件的命名空间.id

 package com.xxx.cms.activity.dao.impl;

 public class ActivityDaoImpl extends BaseDao implements ActivityDao {
//获得class名, 即 ActivityDaoImpl
public String getSimpleNameSpace() {
return this.getClass().getSimpleName();
} //获得class全文件名, 包名.class名
// 即com.xxx.cms.activity.dao.impl.ActivityDaoImpl
public String getNameSpace() {
return this.getClass().getName();
} // sql调用
int id = (int) (Integer) getSqlSession().selectOne(getNameSpace() + ".getActivityComingId"); }
 //直接以class名为命名空间
<mapper namespace="ActivityDaoImpl"> <!-- 以class全路径为命名空间,这样可以避免两个class文件名相同的问题 -->
<mapper namespace="com.teshehui.cms.activity.dao.impl.ActivityDaoImpl">