我正在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
对象。它应该有一些连接参数吗?
谢谢你的帮助。
答案 0 :(得分:0)
将DataSource定义为Spring bean,就像在另一个问题中一样: How to Define a MySql datasource bean via XML in Spring 然后在MyBatisUtils类中注入数据源。
您还可以将SqlSessionFactory定义为Spring bean,并直接注入它。有用的参考:http://www.mybatis.org/spring/getting-started.html
答案 1 :(得分:0)
如果您已经使用spring-boot
,则可以使用mybatis-spring-boot-starter
并免费自动配置mybatis。您唯一需要担心的是数据源。为此,应在application.properties
spring.datasource.url=jdbc:mysql://localhost/test
spring.datasource.username=dbuser
spring.datasource.password=dbpass
您可以找到更多信息here