我正在使用mybatis-spring设置MyBatis项目,并且我希望将Java配置用于除实际SQL之外的所有内容(例如,mapper接口中没有@Select注释).
我有以下设置,它有效,但它使用@Select:
DataSource Bean:
@Configuration
public class DataSourceConfig {
@Bean
public DataSource devDataSource() {
... set up data source
return dataSource;
}
}
MyBatis Beans:
@Configuration
@MapperScan("myproject.persistence")
public class MyBatisConfig {
@Autowired
DataSource dataSource;
@Bean
public SqlSessionFactory sqlSessionFactory() throws Exception {
final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(dataSource);
return sessionFactory.getObject();
}
}
映射器接口:
package myproject.persistence;
public interface PersonMapper {
@Select("SELECT * FROM PersonTable WHERE PersonTable.LAST_NAME = #{lastName}")
List getByLastName(@Param("lastName") String lastName);
}
服务:
@Service
public class PeopleService {
@Autowired
PersonMapper personMapper;
public List getByLastName(final String lastName) {
return personMapper.getByLastName(lastName);
}
}
我正在寻找一种方法将@Select注释中的SQL语句移动到XML文件(但是为所有bean维护Java配置,并且仍然使用@MapperScan).我正在寻找的缺失链接是将映射器接口与定义SQL语句的XML“映射器”配对的方法.
本文介绍如何在MyBatis项目中使用Java配置,并将SQL语句移至XML文件。通过示例展示了如何配置数据源、SqlSessionFactory及mapper接口,同时保持使用@MapperScan进行扫描。
551

被折叠的 条评论
为什么被折叠?



