zoukankan      html  css  js  c++  java
  • SpringBoot系列---【初始化项目时,如何实现自动初始化数据库的表?】

    1.应用背景

    在做项目的过程中,我们经常会习惯于搭建一个通用的框架,内部简单实现了自己的一些逻辑和一些基础的表,例如用户,角色,权限表,当我们快速开发一个项目时,我们希望只用启动我们的通用框架,就能快速搭建一套基础环境,这里可以使用springboot2.0以上版本提供的jdbc初始化数据库表。

    2.在application.yml中加入如下配置

    spring.datasource下有两个属性  schme、data,其中schema为表初始化语句,data为数据初始化,默认加载schema.sql与data.sql。脚本位置可以通过spring.datasource.schema  与spring.datasource.data 来改变。

    server:
      # 获取端口,没有就用默认的端口port
      port: ${port:8083}
    spring:
      application:
        #本地测试
        name: validator
      datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://localhost:33306/jiulong_blog?characterEncoding=utf-8&serverTimezone=Asia/Shanghai
        username: root
        password: 123456
        # 执行完毕,需要改为never,否则对已存在的表,报错(从 always 改为 never )
        initialization-mode: always
        #注意书写方式,-后面有一个空格,classpath:name.sql中间却没有空格
        #schema: classpath:sql/jiulong_blog.sql#只有一个sql文件的写法
        #有多个sql文件时的写法
        schema:
          - classpath:sql/jiulong_blog.sql
          - classpath:sql/init.sql
        #初始化的数据
        data: classpath:data-mysql.sql
         # Initialize the datasource with available DDL and DML scripts.
        continue-on-error: false
        sql-script-encoding: utf-8
        separator: ;
        initialSize: 5
        maxWait: 60000
        timeBetweenEvictionRunsMillis: 60000
        minEvictableIdleTimeMillis: 300000
        validationQuery: SELECT 1 FROM DUAL
        testWhileIdle: true
        testOnBorrow: false
        testOnReturn: false
        poolPreparedStatements: true
        connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
        useGlobalDataSourceStat: true

    3.工程结构如图

    愿你走出半生,归来仍是少年!
  • 相关阅读:
    以《淘宝网》为例,描绘质量属性的六个常见属性场景
    架构漫谈感想
    架构师的工作流程
    阅读笔记六
    代码生成器的步骤
    hibernate中*.hbm.xml配置文件的各种映射关系配置方法(多对一,多对多)
    hibernate错误:Caused by: org.hibernate.MappingException: Repeated column in mapping for entity: com.zxq.DIYSharing.domain.Topic column: topicid (should be mapped with insert="false" update="false")
    MVC模式在Java Web应用程序中的实例
    MVC框架
    设计模式
  • 原文地址:https://www.cnblogs.com/hujunwei/p/14171045.html
Copyright © 2011-2022 走看看