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规定中,那三个字符时有特殊含义的!

  • 相关阅读:
    hdoj--2098--分拆素数和(水题)
    hdoj--5563--Clarke and five-pointed star(简单几何)
    zzulioj--1813--good string(模拟)
    docker(3)docker下的centos7下安装jdk
    docker(2)安装centos7镜像与容器管理
    docker安装
    大数据简介
    esper(1)-窗口概述
    idea(2)快捷键
    idea(1)-idea初装
  • 原文地址:https://www.cnblogs.com/zhangygl/p/3606946.html
Copyright © 2011-2022 走看看