SpringBoot操作数据库

SpringData简介

对于数据访问层,无论是SQL还是NoSQL,在SpringBoot 底层都是采用SpringData来进行封装的。
官网地址:https://spring.io/projects/spring-data
官网

使用IDEA构建项目时,我们可以勾选SpringData相关依赖。
勾选SpringData相关依赖
如上图界面所示,Spring提供了很多工具供我们使用,它封装了大量的模板,在Template Engines选项中可以勾选需要的模板引擎依赖,IDEA会自动帮我们导入。
JDBC我们选择了Spring Data JDBC,对应的依赖为spring-boot-start-data-jdbc,它本质上和spring-boot-start-jdbc依赖是一样的,点击依赖,我们发现它的底层使用的还是spring-boot-start-jdbc依赖。
与此同时,可以发现SpringBoot2.x默认的数据源是HikariCP,其maven依赖如下:

<dependency>
  <groupId>com.zaxxer</groupId>
  <artifactId>HikariCP</artifactId>
  <version>3.4.2</version>
  <scope>compile</scope>
</dependency>

我们还导入了MySQL驱动,需要注意的是MySQL驱动如果不指定版本号,默认使用8.0版本,其maven依赖如下:

<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <scope>runtime</scope>
</dependency>

如果不想使用默认版本,加上version即可。

集成JDBC

导入数据库

1、创建springboot数据库。

CREATE DATABASE /*!32312 IF NOT EXISTS*/`springboot` 
/*!40100 DEFAULT CHARACTER SET utf8 */;

2、创建员工表,插入若干数据。

CREATE TABLE `employee` (
  `id` INT(5) NOT NULL AUTO_INCREMENT COMMENT '雇员id',
  `last_name` VARCHAR(100) NOT NULL COMMENT '名字',
  `email` VARCHAR(100) NOT NULL COMMENT '邮箱',
  `gender` INT(2) NOT NULL COMMENT '性别1 男, 0 女',
  `department` INT(3) NOT NULL COMMENT '部门id',
  `birth` DATETIME NOT NULL COMMENT '生日',
  PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=1006 DEFAULT CHARSET=utf8;

3、创建部门表,插入若干数据。

CREATE TABLE `department` (
  `id` INT(3) NOT NULL AUTO_INCREMENT COMMENT '部门id',
  `department_name` VARCHAR(20) NOT NULL COMMENT '部门名字',
  PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=106 DEFAULT CHARSET=utf8;

创建项目

1、导入JDBC配置和MySQL驱动。

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <scope>runtime</scope>
</dependency>

2、编写配置文件,注意MySQL8.0以上需要配置时区。

spring:
  datasource:
    username: root
    password: 123456
    #注意MySQL8.0以上需要配置时区
    url: jdbc:mysql://localhost:3306/springboot?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
    driver-class-name: com.mysql.cj.jdbc.Driver

小技巧:如果记不清楚url,可以在IDEA的Database窗口中测试连接一下,测试成功后下方会显示完整的数据库连接地址。
测试连接地址
3、测试连接。

@SpringBootTest
class SpringBootDataDemoApplicationTests {

    @Autowired
    DataSource dataSource;

    @Test
    void contextLoads() throws SQLException {
        //查看默认数据源  class com.zaxxer.hikari.HikariDataSource
        System.out.println(dataSource.getClass());
        Connection connection=dataSource.getConnection();
        //connection代表数据源  HikariProxyConnection@64068997 wrapping com.mysql.cj.jdbc.ConnectionImpl@2ae62bb6
        System.out.println(connection);
        //真实开发更多会去使用数据源
        connection.close();
    }
}

自动配置核心类

  • DataSourceCon
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wunianisme

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值