写点什么

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

作者:Java高工P7
  • 2021 年 11 月 12 日
  • 本文字数:1661 字

    阅读完需:约 5 分钟

spring.jpa.properties.hibernate.hbm2ddl.auto=updatespring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialectspring.jpa.show-sql= true


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



设置驱动,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 is com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.


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@GeneratedValueprivate 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 为参数的查询


【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


方法。


package com.example.demo.dao;


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


import com.example.demo.domain.User;


public interface UserRepository extends JpaRepository<User, Long> {


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 {


@Autowiredprivate UserRepository userRepository;


@RequestMapping("/getAllUser")@ResponseBodypublic List<User> findAll() {List<User> list = new ArrayList<User>();list = userRepository.findAll();return list;}


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


}


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



用户头像

Java高工P7

关注

还未添加个人签名 2021.11.08 加入

还未添加个人简介

评论

发布
暂无评论
硬核!SpringBoot连接MySQL数据库,十分钟啃透