1 修改配置文件

修改application.properties文件,添加如下内容:

# 指定创建数据库的脚本
spring.datasource.schema=classpath:schema.sql
# 指定初始化数据库内容的脚本
spring.datasource.data=classpath:data.sql
# 启动时,是否执行数据库初始化工作
spring.datasource.initialization-mode=always

2 设置数据脚本

在src/main/resources目录下:

2.1 生成数据脚本

新建schema.sql,代码如下:

CREATE DATABASE IF NOT EXISTS `test`;
use  `test`;SET foreign_key_checks = 0;DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (id bigint(20) PRIMARY KEY NOT NULL AUTO_INCREMENT,username varchar(20) NOT NULL,userpass varchar(20) NOT NULL,gender varchar(2) DEFAULT NULL,email varchar(50) DEFAULT NULL,telephone varchar(20) DEFAULT NULL,introduce varchar(100) DEFAULT NULL,active_code varchar(50) DEFAULT NULL,state int(11) DEFAULT '0',role varchar(10) DEFAULT '普通用户',regist_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);DROP TABLE IF EXISTS products;
CREATE TABLE products (id bigint(20) PRIMARY KEY NOT NULL AUTO_INCREMENT,`name` varchar(40) DEFAULT NULL,price double DEFAULT NULL,category varchar(40) DEFAULT NULL,pnum int(11) DEFAULT NULL,imgurl varchar(100) DEFAULT NULL,description varchar(255) DEFAULT NULL
);DROP TABLE IF EXISTS orders;
CREATE TABLE orders (id bigint(20) PRIMARY KEY NOT NULL AUTO_INCREMENT,money double DEFAULT NULL,receiver_address varchar(255) DEFAULT NULL,receiver_name varchar(20) DEFAULT NULL,receiver_phone varchar(20) DEFAULT NULL,paystate int(11) DEFAULT '0',ordertime timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,uid bigint(20) DEFAULT NULL
);DROP TABLE IF EXISTS order_item;
CREATE TABLE order_item (id bigint(20) PRIMARY KEY NOT NULL AUTO_INCREMENT,oid bigint(20) DEFAULT '0',pid bigint(20) DEFAULT '0',buynum int(11) DEFAULT '1'
);DROP TABLE IF EXISTS notices;
CREATE TABLE notices (id bigint(20) PRIMARY KEY NOT NULL AUTO_INCREMENT,title varchar(10) DEFAULT '',details varchar(255) DEFAULT '',`time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);SET foreign_key_checks = 1;

3.2 初始化数据库内容脚本

在src/main/resouce目录下,新建data.sql文件,内容如下:

use `test`;
INSERT INTO users (username, userpass,gender, email, telephone, introduce, active_code, state, role, regist_time ) VALUES ('admin','123456','男','huan9yun@163.com','13041019968','我是超级管理员,我可以登录后台管理系统','49338fdc-d8c9-46fa-8391-0fac7bf09707',1,'超级用户','2015-03-19 00:16:40'),('madan','123456','女','huan9yun@163.com','13269219270','我是一个课程设计师','c1cc1229-f0ac-41b4-920c-dfef9f8a96a3',1,'普通用户','2015-03-19 02:12:36'),('huangyun','123456','男','huan9yun@163.com','13041019968','大家好,我是黄云','d0827d1d-dc0d-4cdc-8710-678ce917880e',1,'普通用户','2015-03-20 01:36:38'),('hanyongmeng','123456','男','itcast_hym@163.com','15207545526','课程设计师','da483412-1e34-43cf-aef2-4925748c811d',1,'普通用户','2016-01-20 23:19:32'),('tianjiao','123456','男','hanyongmeng@126.cn','','','f8173f4f-debe-4d32-8117-b228d555d822',0,'普通用户','2016-02-17 23:32:01');
INSERT INTO products (`name`, price,category,pnum,imgurl,description ) VALUES ('.net设计规范',50,'计算机',16,'/productImg/12/13/bba5ddf2-2a56-4a88-9d1b-abc8e0202ec9.jpg',''),('网管员必备宝典',20,'计算机',15,'/productImg/4/3/0270eba2-2b48-48df-956b-0341204384d9.jpg','计算机类'),('学会宽容',25,'文学',5,'/productImg/6/5/a2da626c-c72d-4972-83de-cf48405c5563.jpg','该书阐述了宽容是一种智慧和力量,是对生命的洞悉,是成长的绿荫,更是家庭幸福的秘诀。常用宽容的眼光看世界,事业、家庭和友谊才能稳固和长久。'),('杜拉拉升职记',54,'原版',198,'/productImg/5/8/c4ab442f-95c7-4d6f-a57e-3eb7dc6b83c4.jpg','职场生活'),('时空穿行',42,'科技',200,'/productImg/12/12/6cc3c25b-2475-496e-9ad7-5e9491e7aaf8.jpg','《时空穿行(中国乡村人类学世纪回访)》对20世纪80年代以来中国云南大理西镇、广东潮州凤凰村、华南茶山等八个代表性乡村田野进行调查,探讨了中国乡村文化的多样性、宗族制度、农民社会等课题。'),('培育男孩',59,'社科',94,'/productImg/3/1/81967f4f-0a39-4b03-8ecc-053365a35605.jpg','如何教育孩子'),('Java基础入门',44.5,'计算机',7,'/productImg/9/0/697a23d6-225a-41a3-8c20-7ab624265ecc.png','《Java基础入门》从初学者的角度详细讲解了Java开发中重点用到的多种技术。全书共11章,包括Java开发环境的搭建及其运行机制、基本语法、面向对象的思想,采用典型翔实的例子、通俗易懂的语言阐述面向对象中的抽象概念。在多线程、常用API、集合、IO、GUI、网络编程章节中,通过剖析案例、分析代码结构含义、解决常见问题等方式,帮助初学者培养良好的编程习惯。最后,讲解了Eclipse开发工具,帮助初学者熟悉开发工具的使用。'),('赢在影响力',89,'励志',47,'/productImg/2/8/acc9d557-f8c9-426b-9aec-50a5a7cf3960.jpg','《赢在影响力:人际交往的学问》创造了全球出版史上空前的发行记录。它深深地触动着读者的神经,满足了他们在人性方面的需要,因此成为经济萧条后期超越流行的读物。它居高不下的销售记录一直持续至20世纪80年代,经历了几乎半个世纪。'),('大勇和小花的欧洲日记',26,'生活百科',100,'/productImg/3/0/3253aeee-5462-47d0-991c-afb568ab3b03.jpg','《大勇和小花的欧洲日记》串起了欧洲文明的溯源之旅。从屹立在近现代艺术之巅的巴黎拾级而下,依次是蓬皮杜博物馆(现代艺术)、奥塞博物馆(印象派艺术)、卢浮宫博物馆(古典主义)。在这里,蒙娜丽莎向文艺复兴的故乡微笔,那是意大利的佛罗伦萨。达芬奇、米开朗琪罗、拉菲尔等巨匠们开创了文艺复兴运动,他们心中的圣地是希腊,似乎已到了起源。然而,这并未到头,与这源头对接的还有遥远的希腊神话,其中有大西洲的传说。在希腊小岛圣托里尼,你看见Atlantica酒店吗?那是人们为大西洲刻下的念想。'),('Java Web程序开发入门',44.5,'计算机',100,'/productImg/9/3/eac105d4-4ab5-4af9-9061-e255016b79d9.png','本书为Java Web开发入门教材,让初学者达到能够灵活使用Java语言开发Web应用程序的程度。为了让初学者易于学习,本书力求内容通俗易懂,讲解寓教于乐,同时针对书中的每个知识点,都精心设计了经典案例,让初学者真正理解这些知识点在实际工作中如何去运用。'),('谁动了我的奶酪',26,'少儿',200,'/productImg/14/11/ebcee924-7d42-43f8-b974-fbdb900bdb58.jpg','儿童作品'),('别做正常的傻瓜',18,'励志',2,'/productImg/14/1/792116e7-6d83-4be4-b3e5-4dd11b0b4565.jpg','本书结合了作者十余年的教学经验,融合了诺贝尔奖得主及其他学者数十年的研究成果,用深入浅出的方法帮助你发现自己决策中的误区,从而使你比大多数人少几分正常,多几分理性,本书所涉及的决策范围广,包括购买什么商品,和什么人结婚,雇用哪些员工,投资什么股票等等。除非你从不做决策,否则本书对你一定有所借鉴。'),('培育男孩',25,'生活',8,'/productImg/2/7/7ede11f8-3ff9-4c12-ad58-b1d5e0e72032.jpg','本书是美国著名家庭问题和儿童教育问题专家、畅销书作家詹姆士·杜布森的新作。全书围绕值得令人类关注的培育男孩问题,讨论了家庭教育、学校教育、父母关爱,以及整个社会文化对男孩成长的影响。针对美国社会普遍存在的男孩教育问题,如父亲缺席、母亲上班、暴力泛滥、单亲家庭、同性恋、学校对男孩特点的忽视等等,提出了自己的看法和解决思路,具有很强的指导性和可操作性,是父母、教师和青年工作者的必读参考书。'),('travelbook',20,'外语',20,'/productImg/15/1/5394df32-ed6e-4203-b9c0-fc175cfc187e.jpg',''),('经济案例解析',35,'经营',98,'/productImg/11/1/8efe720f-fa72-435b-a3c3-69230f9677cc.jpg',''),('美国纽约摄影学院摄影教材',45,'艺术',99,'/productImg/13/2/20788b05-d298-4a7c-91d9-370fb056f6a5.jpg','艺术教材'),('系统分析师教程',54,'考试',300,'/productImg/5/11/e4d290ce-3355-466f-a51e-13c62552d2cb.jpg','系统分析师'),('中国国家地理',20,'学术',20,'/productImg/2/0/2105fbe5-400f-4193-a7db-d7ebac389550.jpg','《中国国家地理》,原名《地理知识》,是关于地理的月刊,该刊的文章和图片经常被中央及地方媒体转载。具有很强的可读性和收藏价值,国内外很多家图书馆已经把该刊作为重点收藏期刊。内容以中国地理为主,兼具世界各地不同区域的自然、人文景观和事件,并揭示其背景和奥秘,另亦涉及天文、生物、历史和考古等领域。是中国大陆著名的有关地理的杂志。因该社隶属中国科学院,有一大批自然地理和人文地理的专家学者作为该社顾问,同时还有许多战斗在科考第一线的工作者与杂志社保持着密切联系,因此具有很强的独家性和权威性。');
INSERT INTO orders (money, receiver_address, receiver_name, receiver_phone, paystate, ordertime, uid) VALUES (44.5,'北京市昌平区金燕龙办公楼','hanyongmeng','15207545526',1,'2016-05-17 18:36:36',4),(59,'北京市昌平区建材城西路金燕龙办公楼','huangyun','13041019968',0,'2016-01-12 23:14:54',3),(89,'北京市海淀区清河永泰园5号楼501','huangyun','13041019968',1,'2016-01-10 02:00:36',3),(65,'北京市昌平区','hanyongmeng','15207545526',0,'2016-05-17 19:33:25',4),(25,'北京市昌平区金燕龙办公楼一层传智播客','madan','13269219270',0,'2016-01-10 02:00:36',2),(35,'北京市昌平区建材城西路','madan','13269219270',0,'2016-02-24 18:44:56',2),(25,'海淀区圆明园西路','hanyongmeng','13455260812',1,'2016-02-24 18:43:40',4),(129,'北京市昌平区北七家镇','hanyongmeng','15207545526',1,'2016-05-17 18:36:22',4),(25,'北京市昌平区建材城西路金燕龙办公楼','hanyongmeng','13848399998',1,'2016-02-24 18:44:23',4);
INSERT INTO order_item (oid, pid, buynum) VALUES (1,1,1),(1,2,1),(2,3,1),(2,4,1),(3,5,1),(4,6,1),(5,7,1),(6,8,1),(7,9,2),(8,10,1),(9,11,2);
INSERT INTO notices (title, details, `time`) VALUES ('暂停当日达业务','尊敬的网上书城用户,   <br>\r\n  为了让大家有更好的购物体验,3月25日起,当日达业务关小黑屋回炉升级!<br>具体开放时间请留意公告,感谢大家的支持与理解,祝大家购物愉快!<br>\r\n3月23日<br>\r\n传智播客 网上书城系统管理部<br>','2016-01-11 03:34:20'),('年货礼包兑换时间通知','尊敬的网上书城用户:\r\n    非常抱歉,因为年后部分供应商工厂开工较晚,导致个别商品到货延迟。\r\n    基于此,15年年货礼包的兑换入口会延期到3月17日,请您在有效期内完成兑换。\r\n    以下礼包预计本周四,即3月12日到货。造成不便深表歉意,敬请谅解。','2016-01-11 03:34:11');

3 启动

启动Spring Boot App(或者启动测试),系统会自动运行脚本,生成数据库。

第08讲 初始化数据库相关推荐

  1. SQL Server数据库技术大全——08讲 PD的使用

    SQL Server数据库技术大全--08讲   PD的使用 讲解了使用PowerDesigner进行数据库建模,包括如何建立概念模型.如何通过概念模型生成物理模型以及如何通过物理模型生成数据库脚本的 ...

  2. endnote初始化数据库支持_服务端编程——数据库(MySQL、sequelize) - 天生笑点低你奈我何...

    一.数据库 前端发送api请求的流程 通过API发送请求,到model进行业务处理,将数据存到或在MYSQL查询,将数据一并给KOA服务器请求,最后将请求的结果返回给客户端 关系型数据库.非关系型数据 ...

  3. 事务第02讲:数据库事务(MySQL)

    事务第02讲:数据库事务[MySQL] 1. 什么是事务? 2. 事务基本要素 3. MySQL事务隔离级别 3.1 事务隔离级别概念 3.1.1 读未提交 3.1.2 读已提交 3.1.3 可重复读 ...

  4. Go 学习笔记(55)— Go 标准库 sql (初始化数据库、插入、更新、删除数据库表、单行查询、多行查询、事务处理)

    1. 标准库说明 Go 的标准库中是没有数据库驱动,只提供了驱动接口,有很多第三方实现了驱动,我们这里选择 go-sql-driver 这个实现是目前使用最多的.github 地址是:https:// ...

  5. 如何在Mysql的Docker容器启动时初始化数据库

    1.前言 Docker在开发中使用的越来越多了,最近搞了一个Spring Boot应用,为了方便部署将Mysql也放在Docker中运行.那么怎么初始化 SQL脚本以及数据呢? 我这里有两个传统方案. ...

  6. mysql5.7.20+初始化_MySQL5.7.28 初始化数据库

    1)初始化随机密码    mysqld --initialize [root@host-172-16-61-102 bin]# ./mysqld --initialize 2020-02-15T07: ...

  7. mysql-5.7.24初始化数据库_MySQL5.7.28 初始化数据库

    1)初始化随机密码    mysqld --initialize [root@host-172-16-61-102 bin]# ./mysqld --initialize 2020-02-15T07: ...

  8. docker mysql数据库初始化_如何在Mysql的Docker容器启动时初始化数据库

    1.前言 Docker在开发中使用的越来越多了,最近搞了一个Spring Boot应用,为了方便部署将Mysql也放在Docker中运行.那么怎么初始化 SQL脚本以及数据呢? 我这里有两个传统方案. ...

  9. sqlalchemy 初始化数据库

    初始化数据库 方法1 from sqlalchemy import create_engine, MetaDataengine = create_engine('sqlite:///foo.db', ...

最新文章

  1. Linux在shell终端中清空DNS缓存,刷新DNS的方法(ubuntu,debian)
  2. 面向对象之编写一个完整的类
  3. 随机森林降维matlab代码,随机森林代码实现问题
  4. Flutter CupertinoSliverRefreshControl 苹果风格的刷新效果
  5. html5的canvas绘制时钟
  6. Python面试题解答——第二部分企业面试题
  7. python3爬虫-通过requests爬取图虫网
  8. 要想成功必须具备的九种手段
  9. Java-集合第五篇Map集合
  10. 苹果系统模拟器_全球首款 iOS 模拟器来袭:免费得一台苹果手机!
  11. 关于软件工程的目的与意义
  12. 《Vue插件》瀑布流插件vue-masonry的使用与踩坑记录
  13. h5+hbuilder 制作手机app
  14. python生成树状图_python如何把数据变成树状图
  15. Java枚举是什么?关于Java枚举的一些理解
  16. [转载]删除微软拼音输入法
  17. 跳出软硬件思维,大屏角逐折射生活态度
  18. android 记录总结安装Apk问题
  19. 李开复《人工智能》摘录
  20. win10笔记本玩游戏总是很卡怎么办

热门文章

  1. c语言select函数头文件,简述select函数的功能与调用方法
  2. 身材不高穿什么身材不高穿什么
  3. 104种***病毒清除方法(下)
  4. 开发游戏陪玩平台系统,如何实现分布式存储?
  5. rockchip uboot kernel logo制作方法
  6. 解决IOS因iframe滑动引起的橡皮筋效果
  7. 林地府邸java什么版本_我的世界1.11林地府邸介绍 关于林地府邸的资料攻略
  8. SQL分析品牌在2019.5-2020.4期间的复购率(复购率理解、inner join)
  9. 【免费活动·硅谷】中国区块链行业研究和应用落地最新成果分享
  10. CentOS 关闭virbr0