Spring + MyBatis - 设置数据源

Posted

技术标签:

【中文标题】Spring + MyBatis - 设置数据源【英文标题】:Spring + MyBatis - setting Data Source 【发布时间】:2018-01-25 17:23:14 【问题描述】:

我正在将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;
        

我不知道如何在MyBatisUtils 类中设置我的DataSource 对象。它应该有一些连接参数吗? 感谢您的帮助。

【问题讨论】:

【参考方案1】:

如果你已经在使用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

【讨论】:

【参考方案2】:

将 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

【讨论】:

以上是关于Spring + MyBatis - 设置数据源的主要内容,如果未能解决你的问题,请参考以下文章

spring boot加mybatis使用Map返回值设置

如何设置数据库的连接数和连接超时时间

mybatis和spring整合

spring+mybatis 多数据源的配置

基于Spring+Mybatis的多数据源动态切换

MyBatis简介与配置MyBatis+Spring+MySql