Mybatis,将mapper xml文件添加到Java创建的配置中

时间:2014-08-06 04:32:30

标签: mybatis

我有一个我的batis(3.2.7)应用程序,我使用java代码(不是xml)创建配置如下。

public static Configuration getConfiguration(DataSet data) {
        if (configuration == null) {
            DataSource dataSource = getDataSource(DRIVER, URL, data.getUsername(), data.getPassword());
            TransactionFactory transactionFactory = new JdbcTransactionFactory();
            Environment environment =
                    new Environment("development", transactionFactory, dataSource);
            configuration = new Configuration(environment);
        }
        return configuration;
}

使用上述配置创建sql会话工厂。

SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);

我的映射器是xml格式(我需要xml格式的这些),并且当前与mapper接口在同一个包中。我使用以下代码添加映射器。

configuration.addMapper(CrudMapper.class);

这将自动添加与mapper接口(CrudMapper)位于同一文件夹中的xml映射器。但我需要将这些xml文件移动到资源文件夹。因此映射器接口将位于一个位置,而xml映射器位于不同的位置。 我找不到任何方法来添加xml映射器到配置。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:2)

您可能正在将xml mappers添加到资源文件夹的根目录。如果保留资源文件夹中的包结构,Configuration.addMapper应该可以正常工作,以便映射器接口com.company.app.MyMapper对应的xml映射存储在resources/com/company/app/MyMapper.xml中。

在这种情况下,xml映射将在编译期间放到完全相同的包中。