我正在将MyBatis集成到SpringBoot应用程序中。应用程序连接到MySql数据库以获取数据。现在我有以下课程。
MyBatisUtils.java
[...]
@Component
public class MyBatisUtils {
private static SqlSessionFactory sqlSessionFactory =
new SqlSessionFactoryBuilder().build(getConfiguration());
public static SqlSessionFactory getSqlSessionFactory(){
return sqlSessionFactory;
}
private static Configuration getConfiguration(){
Configuration configuration = new Configuration();
DataSource dataSource = null; //wrong!!!
TransactionFactory transactionFactory = new JdbcTransactionFactory();
Environment environment = new Environment("development", transactionFactory, dataSource);
configuration.addMapper(BaseQuery.class);
return configuration;
}
}Search.java
[...]
public List dynamicSearch(){
SqlSession session = MyBatisUtils.getSqlSessionFactory().openSession();
BaseQuery mapper = session.getMapper(BaseQuery.class);
List<HashMap<String, Object>> result = mapper.select(/*query parameters*/);
return result;
}我不知道如何在DataSource类中设置我的MyBatisUtils对象。它应该有一些连接参数吗?
谢谢你的帮助。
发布于 2017-08-18 08:22:48
将DataSource定义为Spring,就像在另一个问题中一样:如何在春季通过XML定义MySql数据源bean然后将数据源注入MyBatisUtils类。
您还可以将SqlSessionFactory定义为Spring,并直接注入它。有用参考:http://www.mybatis.org/spring/getting-started.html
发布于 2017-08-18 19:16:15
如果您已经在使用spring-boot,您可以免费使用mybatis-spring-boot-starter和自动配置mybatis。你唯一需要担心的就是数据源。为此,应在application.properties中设置属性
spring.datasource.url=jdbc:mysql://localhost/test
spring.datasource.username=dbuser
spring.datasource.password=dbpass你可以找到更多的信息,这里
https://stackoverflow.com/questions/45732664
复制相似问题