不学无数——SpringBoot入门VI

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: SpringBoot1 连接数据库Spring框架为连接数据库提供了许多的帮助,从JDBC连接到使用JdbcTemplate完成元素之间的映射技术。例如Hibernate、Spring Data提供了更高级别的功能,创建Repository的实现,用接口中的方法和xml文件具体SQL的映射,使得用java调用Sql更加简便。

SpringBoot

1 连接数据库

Spring框架为连接数据库提供了许多的帮助,从JDBC连接到使用JdbcTemplate完成元素之间的映射技术。例如Hibernate、Spring Data提供了更高级别的功能,创建Repository的实现,用接口中的方法和xml文件具体SQL的映射,使得用java调用Sql更加简便。

1.1 配置DataSource

Java的javax.sql.DataSource一个接口,可以获取数据库的Connection。是标准化的,取得连接的一种方式。当然在配置DataSource之前需要我们导入所需要的jar包

    compile('org.springframework.boot:spring-boot-starter-jdbc')
    compile 'mysql:mysql-connector-java:8.0.11'

1.1.1 默认配置

这个方法非常的简单,只需要在application.yml中配置一些元素即可

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/xmall
    username: root
    password: *******
    driver-class-name: com.mysql.jdbc.Driver

在SpringBoot中可以不用详细的指定driver-class-name,因为SpringBoot能够在所写的url中推断出来所用的

然后在测试方法类中查看是否已经配置完成,只要打印出来了配置信息,那么既表示已经将配置文件中的元素配置到了DataSource中。

@RunWith(SpringRunner.class)
@SpringBootTest
public class FirstSpringBootApplicationTests {

    @Autowired
    private DataSourceProperties dataSourceProperties;
    
    @Autowired
    ApplicationContext applicationContext;

    @Test
    public void contextLoads() {
        // 获取配置的数据源
        DataSource dataSource = applicationContext.getBean(DataSource.class);
        // 查看配置数据源信息
        System.out.println(dataSource);
        System.out.println(dataSource.getClass().getName());
        System.out.println(dataSourceProperties.getUsername());
    }

}

1.1.2 自定义配置数据源

在application.yml中配置如下


buxuewushu:
  datasource:
    url: jdbc:mysql://localhost:3306/xmall
    username: root
    password: *******
    driver-class-name: com.mysql.jdbc.Driver


然后在配置文件中写如下信息


/**
 * @program: FirstSpringBoot
 * @description:
 * @author: hu_pf@suixingpay.com
 * @create: 2018-07-30 16:37
 **/
@Configuration
public class DataConfigure {

    @Bean(name = "myDataSource")
    @Qualifier("myDataSource")
    @ConfigurationProperties("buxuewushu.datasource")
    public DataSource dateSource(){
        return DataSourceBuilder.create().build();
    }

}

然后在测试类中测试如下

    @Resource(name = "myDataSource")
    private DataSource myDataSource;

    @Autowired
    ApplicationContext applicationContext;

    @Test
    public void contextLoads() {
        //执行SQL,输出查到的数据
        JdbcTemplate jdbcTemplate = new JdbcTemplate(myDataSource);
        List<?> resultList = jdbcTemplate.queryForList("select * from tb_address");
        System.out.println("===>>>>>>>>>>>" + resultList);
    }

发现能够打印出来Mysql数据库中的信息,即配置的数据源已经生效。

1.1.3 配置多数据源

如果需要配置多数据源的话,那么可以在使用上一小节的自定义配置来进行配置两个数据源。但是在配置文件中配置两个数据源的时候要配置一个主数据源,即在主数据源上加上@Primary注解。因为SpringBoot的自动配置功能需要有一个指定的数据源进行加载。

只需要在资源文件中配置不同的数据源,用名字进行区分开来,例如如下:

buxuewushu:
  datasource:
    first:
      url: jdbc:mysql://localhost:3306/first
      username: root
      password: hpy911213
      driver-class-name: com.mysql.jdbc.Driver

buxuewushu:
  datasource:
    secend:
      url: jdbc:mysql://localhost:3306/secend
      username: root
      password: hpy911213
      driver-class-name: com.mysql.jdbc.Driver


然后在java的配置文件中,加载配置时如下写即可:

     @Bean
    @ConfigurationProperties("buxuewushu.datasource.first")
    @Primary
    public DataSource dateSourceFirst(){
        return DataSourceBuilder.create().build();
    }
    
    @Bean
    @ConfigurationProperties("buxuewushu.datasource.secend")
    public DataSource dateSourceSecend(){
        return DataSourceBuilder.create().build();
    }

1.1.4 使用JdbcTemplate

Spring的JdbcTemplateNamedParameterJdbcTemplate这两个类是自动配置的。可以直接在类中@Autowired进行使用。例子如下所示:

@Component
public class MyBean {

    private final JdbcTemplate jdbcTemplate;

    @Autowired
    public MyBean(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
    }

    // ...

}

如果想配置一些关于template的参数的话,可以使用spring.jdbc.template.*进行配置。

spring.jdbc.template.max-rows=500

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2天前
|
Java 数据库连接 测试技术
SpringBoot入门(4) - 添加内存数据库H2
SpringBoot入门(4) - 添加内存数据库H2
17 4
SpringBoot入门(4) - 添加内存数据库H2
|
2天前
|
Java 应用服务中间件 数据库连接
SpringBoot入门(2) - SpringBoot HelloWorld
SpringBoot入门(2) - SpringBoot HelloWorld
11 2
SpringBoot入门(2) - SpringBoot HelloWorld
|
5天前
|
Java 数据库连接 测试技术
SpringBoot入门(4) - 添加内存数据库H2
SpringBoot入门(4) - 添加内存数据库H2
15 2
SpringBoot入门(4) - 添加内存数据库H2
|
5天前
|
前端开发 Java 数据库
SpringBoot入门(3) - 对Hello world进行MVC分层
SpringBoot入门(3) - 对Hello world进行MVC分层
18 1
SpringBoot入门(3) - 对Hello world进行MVC分层
|
5天前
|
Java 应用服务中间件 数据库连接
SpringBoot入门(2) - SpringBoot HelloWorld
SpringBoot入门(2) - SpringBoot HelloWorld
14 1
 SpringBoot入门(2) - SpringBoot HelloWorld
|
3天前
|
XML 安全 Java
SpringBoot入门(1) - SpringBoot简介
SpringBoot是在SpringFramework基础上发展起来的框架,旨在简化Spring应用的初始搭建及开发过程。它通过“约定优于配置”原则减少繁重的配置工作,提供开箱即用的特性,支持快速开发,同时自动配置Spring,提高开发效率。
28 11
|
3天前
|
前端开发 Java 数据库
SpringBoot入门(3) - 对Hello world进行MVC分层
本文介绍了如何在Spring Boot项目中实现MVC分层架构,通过将代码划分为controller、service、dao和entity四个部分,实现高内聚低耦合的设计。示例项目包括用户增删查改功能,详细展示了各层的具体实现及运行测试。
23 11
|
3天前
|
Java 应用服务中间件 数据库连接
SpringBoot入门(2) - SpringBoot HelloWorld
本文介绍了如何使用Spring Boot创建一个简单的Web应用程序,包括项目初始化、添加依赖、编写代码和运行程序等步骤。通过添加`spring-boot-starter-web`模块,快速搭建了一个能够响应HTTP请求的Web服务。此外,文章还探讨了如何配置服务器(如Tomcat)以及Spring Boot提供的其他常用starter模块。示例源码可在GitHub上获取。
23 11
|
2天前
|
XML 安全 Java
SpringBoot入门(1) - SpringBoot简介
SpringBoot入门(1) - SpringBoot简介
16 3
|
2天前
|
前端开发 Java 数据库
SpringBoot入门(3) - 对Hello world进行MVC分层
SpringBoot入门(3) - 对Hello world进行MVC分层
9 2