SpringBoot2.2.2版本自动建表

环境 idea2019.2  jdk1.8   数据库mysql 5.7

项目 结构

new ->Project  使用springboot快速搭建web项目        选好sdk  next

填写项目信息   next

 点Web-->勾选 Spring Web  

点SQL->勾选 JDBC API     和   MySQL  Driver

 确认最后的项目信息 Finish   篇幅太长 点开看           这个例子只是生成了表       最后的例子中有数据生成 

创建下面两个配置文件   放在resource目录下

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/jdbc?useSSL=true&serverTimezone=UTC&characterEncoding=UTF8
    data-username: root
    data-password: root
    initialization-mode: always
    schema=classpath: schema.sql
application.yml
DROP TABLE IF EXISTS `department`;
CREATE TABLE `department` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `departmentName` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
schema.sql

手动新建jdbc数据库       测试数据库连接  

@RunWith(SpringRunner.class)手动添加  没有自动生成
@RunWith(SpringRunner.class)
@SpringBootTest
class Springboot06jdbcApplicationTests {
    @Autowired
    DataSource dataSource;

    @Test
    void contextLoads() throws SQLException {
        System.out.println("------>>>"+dataSource.getClass());
        Connection connection = dataSource.getConnection();
        System.out.println("=========>>>"+connection);
        connection.close();
    }

}

springboot 2 以后默认使用HikariDataSource 数据源  

使用Hikari连接池

 

 验证后  运行spingboot启动类即可

 

 结果  

如果想生成表  并生成数据   请看下面操作

user.sql

 drop table  if exists user;
 create table user (id bigint(20) not null auto_increment,
 username varchar(40) DEFAULT NULL,
 name varchar(20) DEFAULT NULL,
 age int(3) DEFAULT NULL,
 balance decimal(10,2) DEFAULT NULL,
 primary key(id))ENGINE=InnoDB DEFAULT CHARSET=utf8;

data.sql

insert into user (id, username, name, age, balance) values (1,'account1','张三', 20, 100.00);
insert into user (id, username, name, age, balance) values (2,'account2','李四', 28, 180.00);
insert into user (id, username, name, age, balance) values (3,'account3','王五', 32, 280.00);

 修改application.yml    

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/jdbc?useSSL=true&serverTimezone=UTC&characterEncoding=UTF8
    data-username: root
    data-password: root
    initialization-mode: always
    #schema=classpath: schema.sql
    schema=classpath: user.sql
    data=classpath: data.sql

 生成表并且插入数据

完整的项目结构

古人学问无遗力,少壮工夫老始成。 纸上得来终觉浅,绝知此事要躬行。
原文地址:https://www.cnblogs.com/wf-zhang/p/12163577.html