我正在将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;
}
}
搜索.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;
}
我不知道如何在MyBatisUtils
类中设置我的DataSource
对象。 它应该有一些连接参数吗?
感谢您的帮助。
将数据源定义为 Spring bean,就像在另一个问题中一样: 如何在 Spring 中通过 XML 定义 MySql 数据源 bean 然后在 MyBatisUtils 类中注入数据源。
你也可以将 SqlSessionFactory 定义为 Spring bean,并直接注入它。有用的参考: http://www.mybatis.org/spring/getting-started.html
如果您已经在使用spring-boot
,则可以免费使用mybatis-spring-boot-starter
和自动配置mybatis。您唯一应该担心的是数据源。为此,应在application.properties
中设置属性
spring.datasource.url=jdbc:mysql://localhost/test
spring.datasource.username=dbuser
spring.datasource.password=dbpass
您可以在此处找到更多信息