• Mybatis配置文件无故报错、无自动完成提示的解决方法,及自动生成主要配置项


    1.引子

          Mybatis配置文件显示红叉有错误,而实际检查又没有错误,这是因为开发环境不能识别这种类型的xml文件。要解决这个问题,就要让IDE开发环境能够“认识”这个文件类型,我们要让IDE环境将这种文件格式给关联起来。

    2.格式关联

    1)找到定义xml格式的DTD文件

           Mybatis主要有两种配置文件,一个是全局配置文件mybais-config.xml,另一个是映射配置文件mapper.xml。我们需要将定义这两种配置文件的DTD文件与开发工具关联起来。而这两个DTD文件都在mybatis的jar包(‘mybatis-x.x.x.jar’)里面 ,那么就要先将此jar包解压成普通的文件夹。
    这两个DTD文件文件就在子目录orgapacheibatisuilderxml中,进入这个文件夹可以看到"mybatis-x-config.dtd" 、“mybatis-x-mapper.dtd” (‘x’用jar包的主版本号代替,我这里是’mybatis-3-mapper.dtd’),它们分别对全局配置文件mybais-config.xml 、mapper.xml进行格式定义。

    2)将DTD文件与开发工具关联(以myeclipse为例)

          点击导航工具栏的Window–> Preferences  ,然后搜索XML,可看到xml的设置选项 ,点击子选项XMLCatalog --> User Specified Entries

    --> Add , 再然后,点击 Catalog Entry --> FileSystem…(选择刚才解压出来的"mybatis-3-mapper.dtd"文件) 。


          Key type保持默认的“Public ID"即可,而Key设置为 mapper映射文件头部" <!DOCTYPE mapper PUBLIC “-//mybatis.org//DTD Mapper 3.0//EN” “http://mybatis.org/dtd/mybatis-3-mapper.dtd” > “中的 "PUBLIC"后的双引号中的字符串一致即可。我这里便将Key设置为”-//mybatis.org//DTD Mapper 3.0//EN"(不加引号),最后点击 Finish完成就行了。


           而关联全局配置文件的DTD文件与上述关联映射配置文件的步骤类似。

    3.自动生成配置文件

          mybatis的配置文件中的子节点比较多,其先后顺序也有一定要求。如果纯靠手工去一一配置,容易出错,且效率效低。如果我们已经进行过XML格式关联,那么可以用开发工具帮助我们生成大量的常用的子节点,我们只需要在其中填写属性即可。
          File --> New -->Other–>XML(Basic Templates) --> Next --> Next --> (单选) Create XML file from a DTD file --> Next --> (单选) Select XML Catalog entry
    然后在Workspace Files中浏览,找到定义此XML格式的DTD文件,再点击Next。

          在弹出的新窗口的“Content options”一栏中,如果勾选了"Create optional attributes" 、"Create optional elements"两项,开发工具将自动为我们生成大量的子元素及属性(项目实施中用不到的元素、属性,可以在写具体配置的时候删除掉)。最后点击Finish完成。

       开发工具生成的Config文件

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE configuration 
    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
     "mybatis-3-config.dtd" >
    <configuration>
      <properties resource="" url="">
        <property name="" value=""/>
      </properties>
      <settings>
        <setting name="" value=""/>
      </settings>
      <typeAliases>
        <typeAlias alias="" type=""/>
        <package name=""/>
      </typeAliases>
      <typeHandlers>
        <typeHandler handler="" javaType="" jdbcType=""/>
        <package name=""/>
      </typeHandlers>
      <objectFactory type="">
        <property name="" value=""/>
      </objectFactory>
      <objectWrapperFactory type=""/>
      <reflectorFactory type=""/>
      <plugins>
        <plugin interceptor=""/>
      </plugins>
      <environments default="">
        <environment id="">
          <transactionManager type=""/>
          <dataSource type=""/>
        </environment>
      </environments>
      <databaseIdProvider type="">
        <property name="" value=""/>
      </databaseIdProvider>
      <mappers>
        <mapper class="" resource="" url=""/>
        <package name=""/>
      </mappers>
    </configuration>
  • 相关阅读:
    UVA 562 Dividing coins
    who is in front of me 解题报告
    UVA 111 历史考试
    UVA 1045 最长公共子序列
    HDU 1003 解题报告
    ACM2014-04训练计划
    基于邻接表的新顶点的增加
    4004.六度空间理论
    4003.基于Dijsktra算法的最短路径求解
    4002.基于快排思想的查找
  • 原文地址:https://www.cnblogs.com/gocode/p/problems-of-mybatis_config-and-autocreate-config_items.html
Copyright © 2020-2023  润新知