Spring + MyBatis - 设置数据源

时间:2017-08-17 10:28:32

标签: mysql spring-boot mybatis


我正在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对象。它应该有一些连接参数吗?
谢谢你的帮助。

2 个答案:

答案 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