1. 程式人生 > 其它 >SpringBoot & jpa &MySQL 零基礎小例子

SpringBoot & jpa &MySQL 零基礎小例子

專案結構

create database if not exists DBtest;
use DBtest;
create table user(
                     id int primary key auto_increment,
                     name varchar(50),
                     email varchar(50),
                     version varchar(50),
                     sex varchar(50),
                     adress varchar(50)
);

insert into user values("0","nanwu","
[email protected]
","v_1","woman","changde"); select * from user;
package com.example.jpa3;

import com.example.jpa3.UserEntity;
import com.example.jpa3.UserRepository;
import org.apache.catalina.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.awt.*;

@RestController
@RequestMapping(path = "/api/v1")
public class UserController {
    @Autowired
    private UserRepository userRepository;
    @PostMapping(path = "userEntity",consumes = {MediaType.APPLICATION_JSON_VALUE})
    public UserEntity addNewUser(@RequestBody UserEntity userEntity){

        return userRepository.save(userEntity);
    }
}
package com.example.jpa3;

import lombok.Data;

import javax.persistence.*;
import java.util.Objects;

@Entity
@Table(name = "user", schema = "DBtest", catalog = "")
public class UserEntity {
    private int id;
    private String name;
    private String email;
    private String version;
    private String sex;
    private String adress;

    @Id
    @Column(name = "id")
    public int getId() {
        return id;
    }

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

    @Basic
    @Column(name = "name")
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Basic
    @Column(name = "email")
    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    @Basic
    @Column(name = "version")
    public String getVersion() {
        return version;
    }

    public void setVersion(String version) {
        this.version = version;
    }

    @Basic
    @Column(name = "sex")
    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    @Basic
    @Column(name = "adress")
    public String getAdress() {
        return adress;
    }

    public void setAdress(String adress) {
        this.adress = adress;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        UserEntity that = (UserEntity) o;
        return id == that.id &&
                Objects.equals(name, that.name) &&
                Objects.equals(email, that.email) &&
                Objects.equals(version, that.version) &&
                Objects.equals(sex, that.sex) &&
                Objects.equals(adress, that.adress);
    }

    @Override
    public int hashCode() {
        return Objects.hash(id, name, email, version, sex, adress);
    }
}
package com.example.jpa3;

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

public interface UserRepository extends JpaRepository<UserEntity,Long> {
}

application.properties

spring.datasource.url = jdbc:mysql://localhost:3306/DBtest?useUnicode=true&characterEncoding=utf-8
spring.datasource.username = root
spring.datasource.password = 126129wunan
spring.datasource.driverClassName = com.mysql.jdbc.Driver

########################################################
### Java Persistence Api --  Spring jpa configuration.
########################################################
# Specify the DBMS
spring.jpa.database = MYSQL
# Show or not log for each sql query
spring.jpa.show-sql = true
# Hibernate ddl auto (create, create-drop, update, validate, none)
spring.jpa.hibernate.ddl-auto = update
# Naming strategy
#[org.hibernate.cfg.ImprovedNamingStrategy  #org.hibernate.cfg.DefaultNamingStrategy]
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
# stripped before adding them to the entity manager)
package com.example.jpa3;

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class Jpa3ApplicationTests {

    @Test
    void contextLoads() {
    }

}
package com.example.jpa3;

import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.util.List;

@SpringBootTest(classes = Jpa3Application.class)
@RunWith(SpringRunner.class)
public class UserRepositoryTest{
    @Autowired
    private UserRepository userRepository;
    @Test
    public void testSaveUser(){
        UserEntity userEntity=new UserEntity();
        userEntity.setAdress("changde2");
        userEntity.setEmail("[email protected]");
        userEntity.setName("huahua");
        userEntity.setSex("woman");
        userEntity.setVersion("v_2");

       UserEntity userEntity1=userRepository.save(userEntity);
        List<UserEntity> Users=userRepository.findAll();
        System.out.println(Users);
        Assert.assertNotNull(Users);

                //userRepository.save(UserEntity.)
    }
}