zoukankan      html  css  js  c++  java
  • Spring Boot连接MySQL数据库

    1. pom.xml添加依赖

    复制代码
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-jpa</artifactId>
            </dependency>
            
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
            </dependency>    
    复制代码

    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”,设置下时区,解决。
    设置驱动,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
        @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, 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 {
    
        @Autowired
        private UserRepository userRepository;
    
        @RequestMapping("/getAllUser")
        @ResponseBody
        public List<User> findAll() {
            List<User> list = new ArrayList<User>();
            list = userRepository.findAll();
            return list;
        }
    
        @RequestMapping("/getByUserName")
        @ResponseBody
        public User getByUserName(String userName) {
            User user = userRepository.findByUserName(userName);
            return user;
        }
    
    }
    复制代码

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

    6. 新建数据库

    新建数据库mysql://localhost:3306/spring_boot ,必须的一个步骤。hibernate虽然会自动新建表,但是数据库还是要手动建好的。
    使用Navicat新建本地数据库,连接名上面右键- >新建数据库 ->填写数据库信息 - > 确定。

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

    7. 测试

    启动项目。用Postman发送请求进行测试:
    http://localhost:8080//user/getAllUser :

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

  • 相关阅读:
    向对象(OO)程序设计
    gVim安装vim-template插件后提示Undefined variable vim_template_subtype/Press ENTER or type command to continue
    基于JQuery easyui,gson的批量新增/修改和删除-servlet版
    Java正则表达式-匹配正负浮点数
    自己写的ORM工具
    秋色园学习测试项目
    把aspx页面生成的cs文件放到其他类库中,以实现对其的封装操作.
    杭州蚂蚁中台技术部-22届应届生-校招实习
    博客园开博
    开发随手记
  • 原文地址:https://www.cnblogs.com/xing-nb/p/12146197.html
Copyright © 2011-2022 走看看