我有一个我的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映射器到配置。有没有办法做到这一点?
答案 0 :(得分:2)
您可能正在将xml mappers添加到资源文件夹的根目录。如果保留资源文件夹中的包结构,Configuration.addMapper
应该可以正常工作,以便映射器接口com.company.app.MyMapper
对应的xml映射存储在resources/com/company/app/MyMapper.xml
中。
在这种情况下,xml映射将在编译期间放到完全相同的包中。