0

我有一个 sqlMapConfig.xml,其中定义了三个 SQLMap。

    <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE sqlMapConfig
    PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
    "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">

  <sqlMapConfig>
    <!-- Statement namespaces are required for Ibator -->
   <settings enhancementEnabled="true" useStatementNamespaces="true"/>

    <!-- Setup the transaction manager and data source that are
         appropriate for your environment
    -->
    <transactionManager type="JDBC">
        <dataSource type="SIMPLE" >
            <property name="JDBC.Driver"
                value="com.mysql.jdbc.Driver"/>
            <property name="JDBC.ConnectionURL"
                value="jdbc:mysql://localhost:3306/sug"/>
            <property name="JDBC.Username"
                value="root"/>
            <property name="JDBC.Password"
                value="admin"/>
        </dataSource>
    </transactionManager>

    <!-- SQL Map XML files should be listed here -->
    <sqlMap resource="com/tatakelabs/dbmaps/categories_SqlMap.xml" />
    <sqlMap resource="com/tatakelabs/dbmaps/pro_SqlMap.xml" />
    <sqlMap resource="com/tatakelabs/dbmaps/pro_category_SqlMap.xml" />

  </sqlMapConfig>

我收到运行时错误 - 原因:java.io.IOException:找不到资源 com/tatakelabs/dbmaps/categories_SqlMap.xml

categories_SqlMap.xml 存在于该位置。我尝试更改地图 xml 的位置,但这并没有帮助。sqlMapConfig.xml 根据 DTD 进行验证。categories_SqlMap.xml 还根据正确的 DTD 进行验证。我束手无策,试图弄清楚为什么它找不到资源。sqlMap 文件由 iBator 生成。

4

5 回答 5

1

发生这种情况是因为 sqlmap 文件位置没有被复制到目标。添加了一个复制目标并修复了它。

于 2012-04-23T20:44:10.717 回答
0

我有同样的问题。看来问题在于配置文件的位置。因此,它与项目资源结构有关。

我将配置文件移动到与映射器类相同的包中并且它工作。在这种情况下,请尝试将所有资源移至此包并将资源属性更新为:

<sqlMap resource="categories_SqlMap.xml" />
<sqlMap resource="pro_SqlMap.xml" />
<sqlMap resource="pro_category_SqlMap.xml" />
于 2014-07-17T19:56:16.737 回答
0

place it ...src\java\abc.xml under the Source Packages directory.

于 2014-08-20T11:48:47.847 回答
0

解决了。

我将 xml 文件移动到 Pojo 所在的位置,并提供如下路径:

<sqlMap resource="com/heena/ibatis/model/jsr/jsr.xml" />

它奏效了。

于 2014-09-04T14:03:44.633 回答
0

如果您使用的是 Spring,则可以使用 SqlMapClientFactoryBean 指定属性“mappingLocations”。在此属性中,您可以指定通用路径,例如“com/tatakelabs/dbmaps/*_SqlMap.xml”或使用 ${mapfiles} 等变量,Spring 会将其解析为文件名数组。这使您可以在 sqlMapConfig 中省略 sqlMap 元素。此技术将在 iBatis 2.3.4 上运行。但是 sql-map-config-2.dtd 也包含在 iBatis.jar 中,因此您可能会遇到一些解析错误,如 /com/ibatis/sqlmap/engine/builder/xml/sql-map-config-2.dtd 可能有一个错误。在这种情况下,您可能希望将 jar 中的它替换为 URL 中的一个:http: //ibatis.apache.org/dtd/sql-map-config-2.dtd

于 2015-11-25T12:14:07.427 回答