ibatis的設定檔中有一個命名空間的屬性,如<sqlMap namespace="common">,預設情況下這個功能是關閉的。
要開啟它需要在SqlMapConfig.xml檔案中進行配置:
<!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN""http://ibatis.apache.org/dtd/sql-map-config-2.dtd"><sqlMapConfig><settings useStatementNamespaces="true" /><sqlMap resource="com/taobao/jingwei/webconsole/biz/dao/model/JwUser.xml" /><sqlMap resource="com/taobao/jingwei/webconsole/biz/dao/model/JwPermission.xml" /><sqlMap resource="com/taobao/jingwei/webconsole/biz/dao/model/JwResource.xml" /></sqlMapConfig>
參考 http://java123.blog.51cto.com/397472/90438
useStatementNamespaces
是否使用Statement命名空間。
這裡的命名空間指的是對應檔中,sqlMap節的namespace屬性,如在上例中針對t_use
表的對應檔sqlMap節點: <sqlMap namespace="User"> 這裡,指定了此sqlMap節點下定義的操作均屬於"User"命名空間。 在useStatementNamespaces="true"的情況下,Statement調用需追加命名空間,如:sqlMap.update("User.updateUser",user);
否則直接通過Statement名稱調用即可,如: sqlMap.update("updateUser",user); 但請注意此時需要保證所有對應檔中,Statement定義無重名。