zoukankan      html  css  js  c++  java
  • 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操作数据库

     

     
     
     
     
     
     
     
     
     
    
    
  • 相关阅读:
    异常:java.io.IOException: Too many open files:
    转载 Servlet3.0中使用注解配置Servle
    Spring 源码从github导入源码到idea2016
    git 命令
    常用linux命令
    mysql优化常用语句
    mysql中in、not in、exists和not exists的区别
    mysql优化
    php常用的数据结构算法
    算法(一)
  • 原文地址:https://www.cnblogs.com/MagicAsa/p/10718842.html
Copyright © 2011-2022 走看看