在没有xml

时间:2016-05-22 01:01:56

标签: java mysql database spring-boot

我使用了Spring In Action 4中的一些例子。

@Bean
public DataSource dataSource() {
    return new EmbeddedDatabaseBuilder()
            .setType(EmbeddedDatabaseType.H2)
            .addScript("thetenticle.sql")
            .build();
}

@Bean
public JdbcOperations jdbcTemplate(DataSource dataSource) {
    return new JdbcTemplate(dataSource);
}

该示例创建一个可用于执行数据库操作的数据源。该示例使用嵌入式h2数据库。这对我没用,因为我想远程连接到mysql数据库。我希望我可以只连接一个DataSource对象,该对象具有我的数据库的连接详细信息。有没有办法可以做到这一点。我对hibernate或xml配置没兴趣。即时通讯使用弹簧靴。

我花了最后18个小时试图找到一个创建mysql数据源而不是嵌入式h2的简单示例,并向数据库发送查询。我还没有找到一个例子。一些网站建议将连接细节添加到application.properties ....但是如何从中创建一个数据源,我可以对其进行SQL查询?

抱歉我的无知,但我只需要一个简单的解释

1 个答案:

答案 0 :(得分:2)

有关快速历史课程,请参阅下文。

执行application.properties设置,如您在网上看到的许多示例中所述:

spring.datasource.url=jdbc:mysql://yourhost/yourdb
spring.datasource.username=youruser
spring.datasource.password=yourpass
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

Spring会为你创建一个DataSource,假设你的类路径上有正确的jar。如果您使用Maven或Gradle构建应用程序,以下列表应该可以帮助您实现目标。

的Maven:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
    <version>1.3.5.RELEASE</version>
</dependency>

摇篮:

compile group: 'org.springframework.boot', name: 'spring-boot-starter-jdbc', version: '1.3.5.RELEASE'

最后,如果您愿意,让AutoConfiguration构建您的JdbcOperations对象(或仅构建您的DataSource)。您不需要做任何事情来创建它们,只需@Autowired将它们放入Spring托管bean中。

@Component
public class MyBean {
    @Autowired
    private JdbcOperations jdbc;

    public void doJdbcStuff() {
        // use jdbc
    }
}

历史课

早期,Spring有减少样板代码的目标(只是他们众多目标中的一个)。他们以许多不同的方式做到了这一点,通过使用模板模式制作许多API的声明,并使配置用Java编写的应用程序变得容易。但在这个过程中,配置在许多大型应用程序中变得怪异。他们很快意识到,他们已经将创建应用程序的复杂性从应用程序的实际业务部分转移到配置中。

这就是SpringBoot的用武之地,目标是减少 配置样板 。有一些方法可以实现,Bill of Materials,AutoConfiguration和application.properties配置是主要手段。

听起来你一直在经历Craig Walls的 Spring in Action,第4版。如果您喜欢这一点,并且您打算继续学习SpringBoot,那么他还会在2015年底发布 SpringBoot in Action 。这是一个非常快速的阅读,在264页,并超过我的上述历史课更彻底。