• SpringBoot与数据访问


    pom依赖:

    <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-jdbc</artifactId>
            </dependency>
            <dependency>
     
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <scope>runtime</scope>
    </dependency>

    application.yml:

    spring:
       datasource:
         username: root
         password: 123456
         url: jdbc:mysql://192.168.15.22:3306/jdbc
         driver-class-name: com.mysql.jdbc.Driver

    效果:

    ​ 默认是用org.apache.tomcat.jdbc.pool.DataSource作为数据源;

    ​ 数据源的相关配置都在DataSourceProperties里面;

    自动配置原理:

    org.springframework.boot.autoconfigure.jdbc:

    1、参考DataSourceConfiguration,根据配置创建数据源,默认使用Tomcat连接池;可以使用spring.datasource.type指定自定义的数据源类型;

    2、SpringBoot默认可以支持;

    org.apache.tomcat.jdbc.pool.DataSource、HikariDataSource、BasicDataSource、

    3、自定义数据源类型

     
    /**
     * Generic DataSource configuration.
     */
    @ConditionalOnMissingBean(DataSource.class)
    @ConditionalOnProperty(name = "spring.datasource.type")
    static class Generic {
    ​
       @Bean
       public DataSource dataSource(DataSourceProperties properties) {
           //使用DataSourceBuilder创建数据源,利用反射创建响应type的数据源,并且绑定相关属性
          return properties.initializeDataSourceBuilder().build();
       }
    
    }

    4、DataSourceInitializer:ApplicationListener

    ​ 作用:

    ​ 1)、runSchemaScripts();运行建表语句;

    ​ 2)、runDataScripts();运行插入数据的sql语句;

    默认只需要将文件命名为:

     
    schema-*.sql、data-*.sql
    默认规则:schema.sql,schema-all.sql;
     
    可以使用   
        schema:
          - classpath:department.sql
          指定位置

    5、操作数据库:自动配置了JdbcTemplate操作数据库

     

     
     
     
     
     
     
     
     
     
    
    
  • 相关阅读:
    Codeforces-799C-Fountains(分类讨论+线段树)
    HDU-3486-Interviewe(二分+RMQ)
    小技巧---查doc文档的index.html怎么用的和chm一样
    chm文件右边部分查看不了
    最长公共临时文档7
    拓展欧几里得临时文档5
    关于myeclipse代码提示的一些问题
    mysql--乱码
    三分--Football Goal(面积最大)
    printf的一个常用技巧
  • 原文地址:https://www.cnblogs.com/MagicAsa/p/10718842.html
Copyright © 2020-2023  润新知