纹身网站建设案例,自己设计一款新产品,辽宁省建设工程信息网开标说明,手机网站 微网站文章目录 一#xff0c;序二#xff0c;自动创建数据库1. 数据源配置2. 修改支持数据库创建 三#xff0c;自动创建数据库表以及数据1. 准备DDL、DML语句1.#xff09;典型DDL语句2.#xff09;典型DML语句 2. 设置初始化参数 四、源码传送 一#xff0c;序
针对Java工程… 文章目录 一序二自动创建数据库1. 数据源配置2. 修改支持数据库创建 三自动创建数据库表以及数据1. 准备DDL、DML语句1.典型DDL语句2.典型DML语句 2. 设置初始化参数 四、源码传送 一序
针对Java工程启动时自动创建数据库、数据表的需求
对 java、springmvc工程我们需要自己动手去实现创建数据表、表数据具体请移步参阅JAVA工程启动时自动创建数据库、数据表
下面我们来探讨在Springboot下怎么去实现
二自动创建数据库
1. 数据源配置
我们知道springboot工程配置数据源一般采用yaml或properties文件的方式 典型的例子如下 application.yml
spring:datasource:url: ${druid.url}username: ${druid.username}password: ${druid.password}driverClassName: ${druid.driverClassName}type: com.alibaba.druid.pool.DruidDataSourcesqlScriptEncoding: utf-8initializationMode: alwaysschema: classpath:sql/schema.sqldata: classpath:sql/data.sqlcontinueOnError: true这里yaml文件引用了properties文件
druid.urljdbc:mysql://127.0.0.1:3306/hello?useSSLfalseserverTimezoneAsia/ShanghairewriteBatchedStatementstrue
druid.driverClassNamecom.mysql.cj.jdbc.Driver
druid.usernameroot
druid.passwordroot123
druid.filtersstat
druid.initialSize2
druid.maxActive20
druid.maxWait60000
druid.timeBetweenEvictionRunsMillis60000
druid.minEvictableIdleTimeMillis300000
druid.validationQuerySELECT 1
druid.testWhileIdletrue
druid.testOnBorrowfalse
druid.testOnReturnfalse
druid.poolPreparedStatementsfalse
druid.maxPoolPreparedStatementPerConnectionSize2002. 修改支持数据库创建
修改properties文件druid.url参数添加createDatabaseIfNotExisttrue 注意这里配置的druid.username一定要有建库权限,否则数据库不存在的前提下会创建失败。
druid.urljdbc:mysql://127.0.0.1:3306/hello?useSSLfalseserverTimezoneAsia/ShanghairewriteBatchedStatementstruecreateDatabaseIfNotExisttrue
druid.driverClassNamecom.mysql.cj.jdbc.Driver
druid.usernameroot
druid.passwordroot123三自动创建数据库表以及数据
1. 准备DDL、DML语句
1.典型DDL语句
DDL是数据定义语言主要用来对数据库表结构进行操作不涉及具体数据一般保存在 schema.sql
USE hello;DROP TABLE IF EXISTS boot_log;
CREATE TABLE IF NOT EXISTS boot_log ( id bigint NOT NULL AUTO_INCREMENT ,event_id varchar(50) ,event_date datetime ,thread varchar(255) ,class varchar(255) ,function varchar(255) ,message varchar(255) ,exception text,level varchar(255) ,time datetime,
PRIMARY KEY (id)
);DROP TABLE IF EXISTS user;
CREATE TABLE IF NOT EXISTS user (id bigint NOT NULL AUTO_INCREMENT,username varchar(20) DEFAULT NULL,password varchar(20) DEFAULT NULL,PRIMARY KEY (id)
);
2.典型DML语句
DML是数据操作语言主要用来对数据库里的数据进行操作涉及具体数据一般保存在data.sql
INSERT INTO user VALUES (1, username_001, 111111);
INSERT INTO user VALUES (2, username_002, 222222);--重复插入模拟异常
INSERT INTO user VALUES (1, username_001, 123456);INSERT INTO user VALUES (3, username_003, 333333);
INSERT INTO user VALUES (4, username_004, 444444);2. 设置初始化参数
观察上面的application.yml文件涉及数据库初始化的参数主要有 sqlScriptEncoding: utf-8initializationMode: alwaysschema: classpath:sql/schema.sqldata: classpath:sql/data.sqlcontinueOnError: true参数说明sqlScriptEncoding编码initializationMode初始化行为取值ALWAYS、EMBEDDED、NEVERschema指定DDL脚本位置schemaUsername可选指定DDL用户名schemaPassword可选指定DDL用户密码data指定DML位置dataUsername可选指定DML用户名dataPassword可选指定DML用户密码continueOnError出错是否继续
注意以上说明是针对springboot2.5.0之前版本springboot2.5.0之后版本 配置变成如下
spring:datasource:username: rootpassword: root123url: jdbc:mysql://localhost:3306/testdb?autoReconnecttrueuseSSLfalseuseUnicodetruecharacterEncodingUTF-8serverTimezoneAsia/ShanghaicreateDatabaseIfNotExisttruesql:init:mode: ALWAYSencoding: utf-8username: rootpassword: root123continueOnError: trueschemaLocations: classpath:schema.sqldataLocations: classpath:data.sql大家自行研究测试
四、源码传送
https://gitee.com/00fly/effict-side/tree/master/springboot-log
有任何问题和建议都可以向我提问讨论,大家一起进步谢谢!
–over–