zoukankan      html  css  js  c++  java
  • Mybatis xml约束文件的使用

    一:准备.DTD约束文件

         核心配置文件约束文件:mybatis-config.dtd

    <?xml version="1.0" encoding="UTF-8" ?>
    <!--
           Copyright 2009-2012 The MyBatis Team
           Licensed under the Apache License, Version 2.0 (the "License");
           you may not use this file except in compliance with the License.
           You may obtain a copy of the License at
              http://www.apache.org/licenses/LICENSE-2.0
           Unless required by applicable law or agreed to in writing, software
           distributed under the License is distributed on an "AS IS" BASIS,
           WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
           See the License for the specific language governing permissions and
           limitations under the License.
    -->
    
    <!ELEMENT configuration (properties?, settings?, typeAliases?, typeHandlers?, objectFactory?, objectWrapperFactory?, plugins?, environments?, databaseIdProvider?, mappers?)>
    
    <!ELEMENT databaseIdProvider (property*)>
    <!ATTLIST databaseIdProvider
    type CDATA #REQUIRED
    >
    
    <!ELEMENT properties (property*)>
    <!ATTLIST properties
    resource CDATA #IMPLIED
    url CDATA #IMPLIED
    >
    
    <!ELEMENT property EMPTY>
    <!ATTLIST property
    name CDATA #REQUIRED
    value CDATA #REQUIRED
    >
    
    <!ELEMENT settings (setting+)>
    
    <!ELEMENT setting EMPTY>
    <!ATTLIST setting
    name CDATA #REQUIRED
    value CDATA #REQUIRED
    >
    
    <!ELEMENT typeAliases (typeAlias*,package*)>
    
    <!ELEMENT typeAlias EMPTY>
    <!ATTLIST typeAlias
    type CDATA #REQUIRED
    alias CDATA #IMPLIED
    >
    
    <!ELEMENT typeHandlers (typeHandler*,package*)>
    
    <!ELEMENT typeHandler EMPTY>
    <!ATTLIST typeHandler
    javaType CDATA #IMPLIED
    jdbcType CDATA #IMPLIED
    handler CDATA #REQUIRED
    >
    
    <!ELEMENT objectFactory (property*)>
    <!ATTLIST objectFactory
    type CDATA #REQUIRED
    >
    
    <!ELEMENT objectWrapperFactory (property*)>
    <!ATTLIST objectWrapperFactory
    type CDATA #REQUIRED
    >
    
    <!ELEMENT plugins (plugin+)>
    
    <!ELEMENT plugin (property*)>
    <!ATTLIST plugin
    interceptor CDATA #REQUIRED
    >
    
    <!ELEMENT environments (environment+)>
    <!ATTLIST environments
    default CDATA #REQUIRED
    >
    
    <!ELEMENT environment (transactionManager,dataSource)>
    <!ATTLIST environment
    id CDATA #REQUIRED
    >
    
    <!ELEMENT transactionManager (property*)>
    <!ATTLIST transactionManager
    type CDATA #REQUIRED
    >
    
    <!ELEMENT dataSource (property*)>
    <!ATTLIST dataSource
    type CDATA #REQUIRED
    >
    
    <!ELEMENT mappers (mapper*,package*)>
    
    <!ELEMENT mapper EMPTY>
    <!ATTLIST mapper
    resource CDATA #IMPLIED
    url CDATA #IMPLIED
    class CDATA #IMPLIED
    >
    
    <!ELEMENT package EMPTY>
    <!ATTLIST package
    name CDATA #REQUIRED
    >

         sql映射文件约束文件:mybatis-mapper.dtd

    <?xml version="1.0" encoding="UTF-8" ?>
    <!--
    
           Copyright 2009-2011 The MyBatis Team
    
           Licensed under the Apache License, Version 2.0 (the "License");
           you may not use this file except in compliance with the License.
           You may obtain a copy of the License at
    
              http://www.apache.org/licenses/LICENSE-2.0
    
           Unless required by applicable law or agreed to in writing, software
           distributed under the License is distributed on an "AS IS" BASIS,
           WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
           See the License for the specific language governing permissions and
           limitations under the License.
    
    -->
    
    <!ELEMENT mapper (cache-ref | cache | resultMap* | parameterMap* | sql* | insert* | update* | delete* | select* )+>
    <!ATTLIST mapper
    xmlns:fo CDATA #IMPLIED
    namespace CDATA #IMPLIED
    >
    
    <!ELEMENT cache-ref EMPTY>
    <!ATTLIST cache-ref
    namespace CDATA #REQUIRED
    >
    
    <!ELEMENT cache (property*)>
    <!ATTLIST cache
    type CDATA #IMPLIED
    eviction CDATA #IMPLIED
    flushInterval CDATA #IMPLIED
    size CDATA #IMPLIED
    readOnly CDATA #IMPLIED
    >
    
    <!ELEMENT parameterMap (parameter+)?>
    <!ATTLIST parameterMap
    id CDATA #REQUIRED
    type CDATA #REQUIRED
    >
    
    <!ELEMENT parameter EMPTY>
    <!ATTLIST parameter
    property CDATA #REQUIRED
    javaType CDATA #IMPLIED
    jdbcType CDATA #IMPLIED
    mode (IN | OUT | INOUT) #IMPLIED
    resultMap CDATA #IMPLIED
    scale CDATA #IMPLIED
    typeHandler CDATA #IMPLIED
    >
    
    <!ELEMENT resultMap (constructor?,id*,result*,association*,collection*, discriminator?)>
    <!ATTLIST resultMap
    id CDATA #REQUIRED
    type CDATA #REQUIRED
    extends CDATA #IMPLIED
    autoMapping (true|false) #IMPLIED
    >
    
    <!ELEMENT constructor (idArg*,arg*)>
    
    <!ELEMENT id EMPTY>
    <!ATTLIST id
    property CDATA #IMPLIED
    javaType CDATA #IMPLIED
    column CDATA #IMPLIED
    jdbcType CDATA #IMPLIED
    typeHandler CDATA #IMPLIED
    >
    
    <!ELEMENT result EMPTY>
    <!ATTLIST result
    property CDATA #IMPLIED
    javaType CDATA #IMPLIED
    column CDATA #IMPLIED
    jdbcType CDATA #IMPLIED
    typeHandler CDATA #IMPLIED
    >
    
    <!ELEMENT idArg EMPTY>
    <!ATTLIST idArg
    javaType CDATA #IMPLIED
    column CDATA #IMPLIED
    jdbcType CDATA #IMPLIED
    typeHandler CDATA #IMPLIED
    select CDATA #IMPLIED
    resultMap CDATA #IMPLIED
    >
    
    <!ELEMENT arg EMPTY>
    <!ATTLIST arg
    javaType CDATA #IMPLIED
    column CDATA #IMPLIED
    jdbcType CDATA #IMPLIED
    typeHandler CDATA #IMPLIED
    select CDATA #IMPLIED
    resultMap CDATA #IMPLIED
    >
    
    <!ELEMENT collection (constructor?,id*,result*,association*,collection*, discriminator?)>
    <!ATTLIST collection
    property CDATA #REQUIRED
    column CDATA #IMPLIED
    javaType CDATA #IMPLIED
    ofType CDATA #IMPLIED
    jdbcType CDATA #IMPLIED
    select CDATA #IMPLIED
    resultMap CDATA #IMPLIED
    typeHandler CDATA #IMPLIED
    notNullColumn CDATA #IMPLIED
    columnPrefix CDATA #IMPLIED
    >
    
    <!ELEMENT association (constructor?,id*,result*,association*,collection*, discriminator?)>
    <!ATTLIST association
    property CDATA #REQUIRED
    column CDATA #IMPLIED
    javaType CDATA #IMPLIED
    jdbcType CDATA #IMPLIED
    select CDATA #IMPLIED
    resultMap CDATA #IMPLIED
    typeHandler CDATA #IMPLIED
    notNullColumn CDATA #IMPLIED
    columnPrefix CDATA #IMPLIED
    >
    
    <!ELEMENT discriminator (case+)>
    <!ATTLIST discriminator
    column CDATA #IMPLIED
    javaType CDATA #REQUIRED
    jdbcType CDATA #IMPLIED
    typeHandler CDATA #IMPLIED
    >
    
    <!ELEMENT case (constructor?,id*,result*,association*,collection*, discriminator?)>
    <!ATTLIST case
    value CDATA #REQUIRED
    resultMap CDATA #IMPLIED 
    resultType CDATA #IMPLIED
    >
    
    <!ELEMENT property EMPTY>
    <!ATTLIST property
    name CDATA #REQUIRED
    value CDATA #REQUIRED
    >
    
    <!ELEMENT typeAlias EMPTY>
    <!ATTLIST typeAlias
    alias CDATA #REQUIRED
    type CDATA #REQUIRED
    >
    
    <!ELEMENT select (#PCDATA | include | trim | where | set | foreach | choose | if)*>
    <!ATTLIST select
    id CDATA #REQUIRED
    parameterMap CDATA #IMPLIED
    parameterType CDATA #IMPLIED
    resultMap CDATA #IMPLIED
    resultType CDATA #IMPLIED
    resultSetType (FORWARD_ONLY | SCROLL_INSENSITIVE | SCROLL_SENSITIVE) #IMPLIED
    statementType (STATEMENT|PREPARED|CALLABLE) #IMPLIED
    fetchSize CDATA #IMPLIED
    timeout CDATA #IMPLIED
    flushCache (true|false) #IMPLIED
    useCache (true|false) #IMPLIED
    databaseId CDATA #IMPLIED
    >
    
    <!ELEMENT insert (#PCDATA | selectKey | include | trim | where | set | foreach | choose | if)*>
    <!ATTLIST insert
    id CDATA #REQUIRED
    parameterMap CDATA #IMPLIED
    parameterType CDATA #IMPLIED
    timeout CDATA #IMPLIED
    flushCache (true|false) #IMPLIED
    statementType (STATEMENT|PREPARED|CALLABLE) #IMPLIED
    keyProperty CDATA #IMPLIED
    useGeneratedKeys (true|false) #IMPLIED
    keyColumn CDATA #IMPLIED
    databaseId CDATA #IMPLIED
    >
    
    <!ELEMENT selectKey (#PCDATA | include | trim | where | set | foreach | choose | if)*>
    <!ATTLIST selectKey
    resultType CDATA #IMPLIED
    statementType (STATEMENT|PREPARED|CALLABLE) #IMPLIED
    keyProperty CDATA #IMPLIED
    order (BEFORE|AFTER) #IMPLIED
    databaseId CDATA #IMPLIED
    >
    
    <!ELEMENT update (#PCDATA | include | trim | where | set | foreach | choose | if)*>
    <!ATTLIST update
    id CDATA #REQUIRED
    parameterMap CDATA #IMPLIED
    parameterType CDATA #IMPLIED
    timeout CDATA #IMPLIED
    flushCache (true|false) #IMPLIED
    statementType (STATEMENT|PREPARED|CALLABLE) #IMPLIED
    databaseId CDATA #IMPLIED
    >
    
    <!ELEMENT delete (#PCDATA | include | trim | where | set | foreach | choose | if)*>
    <!ATTLIST delete
    id CDATA #REQUIRED
    parameterMap CDATA #IMPLIED
    parameterType CDATA #IMPLIED
    timeout CDATA #IMPLIED
    flushCache (true|false) #IMPLIED
    statementType (STATEMENT|PREPARED|CALLABLE) #IMPLIED
    databaseId CDATA #IMPLIED
    >
    
    <!-- Dynamic -->
    
    <!ELEMENT include EMPTY>
    <!ATTLIST include
    refid CDATA #REQUIRED
    >
    
    <!ELEMENT sql (#PCDATA | include | trim | where | set | foreach | choose | if)*>
    <!ATTLIST sql
    id CDATA #REQUIRED
    >
    
    <!ELEMENT trim (#PCDATA | include | trim | where | set | foreach | choose | if)*>
    <!ATTLIST trim
    prefix CDATA #IMPLIED
    prefixOverrides CDATA #IMPLIED
    suffix CDATA #IMPLIED
    suffixOverrides CDATA #IMPLIED
    >
    <!ELEMENT where (#PCDATA | include | trim | where | set | foreach | choose | if)*>
    <!ELEMENT set (#PCDATA | include | trim | where | set | foreach | choose | if)*>
    
    <!ELEMENT foreach (#PCDATA | include | trim | where | set | foreach | choose | if)*>
    <!ATTLIST foreach
    collection CDATA #REQUIRED
    item CDATA #IMPLIED
    index CDATA #IMPLIED
    open CDATA #IMPLIED
    close CDATA #IMPLIED
    separator CDATA #IMPLIED
    >
    
    <!ELEMENT choose (when* , otherwise?)>
    <!ELEMENT when (#PCDATA | include | trim | where | set | foreach | choose | if)*>
    <!ATTLIST when
    test CDATA #REQUIRED
    >
    <!ELEMENT otherwise (#PCDATA | include | trim | where | set | foreach | choose | if)*>
    
    <!ELEMENT if (#PCDATA | include | trim | where | set | foreach | choose | if)*>
    <!ATTLIST if
    test CDATA #REQUIRED
    >

    二:在eclipse中使用XML约束文件
          将约束文件,插入到xml文件中,两种约束文件的插入位置是相同的

          核心配置文件:

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- .DTD文件是xml格式文件的约束文件,它约束了该xml文件使用的标签以及标签之间的关系 -->
    <!DOCTYPE configuration
    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    "http://mybatis.org/dtd/mybatis-config.dtd">

          sql映射文件:

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- 该文件代表的是类和表的映射关系,关于表的sql语句等等写在这里 -->
    <!DOCTYPE mapper
    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-mapper.dtd">

    三:集成到eclipse开发工具中
        Window-> Preferences->XML->XML Catalog->Add

        然后

        key:写入 xml文件中 PUBLIC中的值

        Location:选择dtd文件的实际物理位置

  • 相关阅读:
    电脑休眠真是神一样
    用visual studio 2017来调试python
    判断两个字符串是不是异位词
    算法题思路总结和leecode继续历程
    今日头条笔试题目,还是没过.效率不够
    The init method
    Object-oriented features
    Modifiers
    Pure functions
    Classes and functions
  • 原文地址:https://www.cnblogs.com/bsyblog/p/9393576.html
Copyright © 2011-2022 走看看