springboot項目啟動-自動創建數據表


很多時候,我們部署一個項目的時候,需要創建大量的數據表。例如mysql,一般的方法就是通過source命令完成數據表的移植,如:source /root/test.sql。如果我們需要一個項目啟動后,就自動創建所需要的數據表,那么除了可以使用代碼完成之外,還可以使用下面的方法。springboot的yml文件配置如下:

    server:
      port: 9137
      tomcat:
    uri-encoding: UTF-8
    max-threads: 100  #最大並發數
    max-connections: 200 #最大連接數
    accepCount: 50  #等待數
    
    spring:
      profiles:
    active: dev #切換開發環境和測試環境,dev為開發環境,prod為測試環境
      application:
    name: vslm
      zipkin:
    base-url: http://localhost:9917/
      sleuth:
    sampler:
      probability: 1.0   #2.0后percentage改為probability
      boot:
    admin:
      client:
    enabled: true
    url: "http://localhost:9905"   #指定hi-admin 服務端地址
    password: "admin"
    username: "admin"
    instance:
      prefer-ip: true
      datasource:
    url: jdbc:mysql://localhost:3306/vslm?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=UTC&useSSL=false
    driverClassName: com.mysql.jdbc.Driver
    username: root
    password: 123456
    #項目啟動后執行建表語句
    schema:
    - classpath:sql/vslm.sql
    sql-script-encoding: utf-8
    platform: mysql
    initialization-mode: always
    druid:
      #監控統計攔截的filters
      filters: stat
      #配置初始化大小/最小/最大
      initial-size: 1
      min-idle: 1
      max-active: 20
      #獲取連接等待超時時間
      max-wait: 60000
      #間隔多久進行一次檢測,檢測需要關閉的空閑連接
      time-between-eviction-runs-millis: 60000
      #一個連接在池中最小生存的時間
      min-evictable-idle-time-millis: 300000
      validation-query: SELECT 'x'
      test-while-idle: true
      test-on-borrow: false
      test-on-return: false
      #打開PSCache,並指定每個連接上PSCache的大小。oracle設為true,mysql設為false。分庫分表較多推薦設置為false
      pool-prepared-statements: false
      max-pool-prepared-statement-per-connection-size: 20
    
    
    mybatis:
      mapper-locations: classpath:mapper/*.xml
      type-aliases-package: com.hierway.vslm.domain  # 注意:對應實體類的路徑
    
    management:
      endpoints:
    web:
      exposure:
       include: "*"   #暴露所有的端點我們可以看到更多的服務實例相關信息,
      endpoint:
    shutdown:
      enabled: true
      sensitive: false
    health:
      show-details: ALWAYS   #health endpoint是否必須顯示全部細節
    dataacess:
      data-access-type: 0 # 0: 使用mybatis1: 使用data service
    
    dataservice:
      base-url: http://localhost:9763/services/reqm_dataservice
    
    rest-client:
      pool-size: 200
      default-max-per-route: 100
      connection-timeout: 5000
      connection-request-timeout: 1000
      socket-timeout: 65000
      validate-after-inactivity: 2000
    
    
    eureka:
      instance:
    lease-expiration-duration-in-seconds: 30
    lease-renewal-interval-in-seconds: 10
    prefer-ip-address: true
      client:
    registerWithEureka: true
    fetchRegistry: true
    #eureka服務端的地址
    serviceUrl:
      defaultZone: http://admin:admin@10.10.10.3:9909/eureka/

然后在resource下創建文件夾sql(自定義)以及vslm.sql文件,鍵入數據定義語言DDL(Data Definition Language)。當項目啟動后,發現會自動創建數據表。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM