zoukankan      html  css  js  c++  java
  • ibatis命名空间namespace的使用

    ibatis的配置文件中有一个命名空间的属性,如<sqlMap namespace="Application">,默认情况下这个功能是关闭的。 
    要打开它需要在SqlMapConfig.xml文件中进行配置: 
    <sqlMapConfig> 

    <settings 
    cacheModelsEnabled="true" 
    enhancementEnabled="true" 
    lazyLoadingEnabled="true" 
    errorTracingEnabled="true" 
    maxRequests="32" 
    maxSessions="10" 
    maxTransactions="5" 
    useStatementNamespaces="true" 
    />  

    </sqlMapConfig> 

    启用了命名空间后,我们用queryForXXX进行操作的时候就要加上命名空间了,即“命名空间名.ID名” 

    typeAlias 节点不受命名空间的影响。

    【注意】

    1、Normandy项目中的配置如下:

    1. <?xml version="1.0" encoding="UTF-8"?> 
    2. <!DOCTYPE sqlMapConfig 
    3. PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN" 
    4. "http://www.ibatis.com/dtd/sql-map-config-2.dtd"> 
    5. <sqlMapConfig> 
    6.     <settings lazyLoadingEnabled="true" cacheModelsEnabled="true" 
    7.         enhancementEnabled="true" useStatementNamespaces="true" 
    8.         errorTracingEnabled="true" /> 
    9.  
    10.     <sqlMap resource="ibatis/Application.xml" /> 
    11.     <sqlMap resource="ibatis/Domain.xml" /> 
    12.     <sqlMap resource="ibatis/ConfigKey.xml" /> 
    13.     <sqlMap resource="ibatis/ConfigValue.xml" /> 
    14.     <sqlMap resource="ibatis/NormandyServer.xml" /> 
    15.     <sqlMap resource="ibatis/ConfigValueChangeEvent.xml" /> 
    16. </sqlMapConfig> 

    另外:

    <sqlMap namespace="Application">
    <select id="selectById" resultClass="businessReliableAnalysis.model.User">
    <![CDATA[
    select ROLE_ID,USER_ID from SEC_ROLE_USER WHERE ROLE_ID=222
    ]]>
    </select>

    </sqlMap>

     访问:

    1. public class ApplicationUtil { 
    2.     private SqlMapClientTemplate sqlMapClientTemplate; 
    3.  
    4.     public SqlMapClientTemplate getSqlMapClientTemplate() { 
    5.         return sqlMapClientTemplate; 
    6.     } 
    7.  
    8.     public void setSqlMapClientTemplate( 
    9.             SqlMapClientTemplate sqlMapClientTemplate) { 
    10.         this.sqlMapClientTemplate = sqlMapClientTemplate; 
    11.     } 
    12.  
    13.     public Application getApplicationById(int id) { 
    14.         return (Application) sqlMapClientTemplate.queryForObject( 
    15.                 "Application.selectById", id); //调用ibatis的namespace=Application,id=selectById的xml文件
    16.     } 

    【注】

    1、使用缓存之后,在同一方法中发出的多条sql或同一条sql被发了多次时将被缓存统一发出:cacheModelsEnabled="true" 。?? 待验证

    2、IBATIS 何时使用CDATA

     ibatis sql语句中  如果遇到  <,>,&,这三类符号的 ,必须要用CDATA 符号,因为在DTD规定中,那三个字符时有特殊含义的!

  • 相关阅读:
    linux 环境变量恢复默认值
    怎么查看Eclipse的版本信息
    掌握HDFS的Java API接口访问
    【代理】代理概念
    【DbUtils】轻量级的ORM学习
    【mysql】相关记录
    JWT(JSON Web Tokens)
    将jar包安装到本地仓库
    Spring集成rabbitmq
    spring-rabbit包的引入需要注意的事项
  • 原文地址:https://www.cnblogs.com/zhangygl/p/3606946.html
Copyright © 2011-2022 走看看