硬核!SpringBoot连接MySQL数据库,十分钟啃透

时间:2021-6-7 作者:qvyue
硬核!SpringBoot连接MySQL数据库,十分钟啃透
硬核!SpringBoot连接MySQL数据库,十分钟啃透

目录

  • 1. pom.xml添加依赖
  • 2. application.properties添加数据库配置
  • 3. 添加实体类
  • 4. 添加Dao
  • 5. 添加Controller
  • 6. 新建数据库
  • 7. 测试

上篇 只需两步!Eclipse+Maven快速构建第一个Spring Boot项目 已经构建了一个Spring Boot项目,本文在此基础上进行连接MySQL数据库的操作。

1. pom.xml添加依赖

        org.springframework.bootspring-boot-starter-data-jpamysqlmysql-connector-java

2. application.properties添加数据库配置

spring.datasource.url=jdbc:mysql://localhost:3306/spring_boot?serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

spring.jpa.properties.hibernate.hbm2ddl.auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.show-sql= true

如果数据库连接写成spring.datasource.url=
jdbc:mysql://localhost:3306/spring_boot ,由于MySQL版本的问题,可能会有以下的错误,在后面加上“?serverTimezone=GMT%2B8”,设置下时区,解决。

硬核!SpringBoot连接MySQL数据库,十分钟啃透
硬核!SpringBoot连接MySQL数据库,十分钟啃透

设置驱动,
spring.datasource.driver-class-name=com.mysql.jdbc.Driver会有下面红色的警告信息。说的是com.mysql.jdbc.Driver'被弃用了,要使用新的驱动com.mysql.cj.jdbc.Driver’,改成`com.mysql.cj.jdbc.Driver’以后一切正常。

Loading class com.mysql.jdbc.Driver'. This is deprecated. The new driver class iscom.mysql.cj.jdbc.Driver’. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.

硬核!SpringBoot连接MySQL数据库,十分钟啃透
image.png

3. 添加实体类

@Entity代表这是一个实体类,@Table(name=”user”)用来对应数据库中的use表,@Id用来表达主键,@Column(name=”id”)表明一个id属性。

@GeneratedValue使主键自增,如果还有疑问,可参考@GeneratedValue源码解析。

package com.example.demo.domain;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "user")
public class User implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue
    private Long id;
    @Column(name = "username")
    private String userName;
    @Column(name = "password")
    private String passWord;

    public User() {
        super();
    }

    public User(String userName, String passWord) {
        super();
        this.userName = userName;
        this.passWord = passWord;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassWord() {
        return passWord;
    }

    public void setPassWord(String passWord) {
        this.passWord = passWord;
    }

}

4. 添加Dao

Dao层主要用来实现对数据库的增、删、查、改。 dao只要继承JpaRepository类就可以,几乎可以不用写方法,可以根据方法名来自动的生产SQL,比如findByUserName 会自动生产一个以 userName 为参数的查询方法。

package com.example.demo.dao;

import org.springframework.data.jpa.repository.JpaRepository;

import com.example.demo.domain.User;

public interface UserRepository extends JpaRepository {

    User findByUserName(String userName);

}

5. 添加Controller

package com.example.demo.controller;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import com.example.demo.dao.UserRepository;
import com.example.demo.domain.User;

@RestController
@RequestMapping("user")
public class UserController {

    @Autowired
    private UserRepository userRepository;

    @RequestMapping("/getAllUser")
    @ResponseBody
    public List findAll() {
        List list = new ArrayList();
        list = userRepository.findAll();
        return list;
    }

    @RequestMapping("/getByUserName")
    @ResponseBody
    public User getByUserName(String userName) {
        User user = userRepository.findByUserName(userName);
        return user;
    }

}

工程添加文件后工程结构图:

硬核!SpringBoot连接MySQL数据库,十分钟啃透
硬核!SpringBoot连接MySQL数据库,十分钟啃透

6. 新建数据库

新建数据库
mysql://localhost:3306/spring_boot ,必须的一个步骤。hibernate虽然会自动新建表,但是数据库还是要手动建好的。

使用Navicat新建本地数据库,连接名上面右键- >新建数据库 ->填写数据库信息 – > 确定。

硬核!SpringBoot连接MySQL数据库,十分钟啃透
硬核!SpringBoot连接MySQL数据库,十分钟啃透

在user表中,插入两条测试数据:

硬核!SpringBoot连接MySQL数据库,十分钟啃透
image.png

7. 测试

启动项目。用Postman发送请求进行测试:

http://localhost:8080//user/getAllUser :

硬核!SpringBoot连接MySQL数据库,十分钟啃透
硬核!SpringBoot连接MySQL数据库,十分钟啃透

http://localhost:8080//user/getByUserName?userName=Turing :

硬核!SpringBoot连接MySQL数据库,十分钟啃透
硬核!SpringBoot连接MySQL数据库,十分钟啃透
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。