【Spring Boot 使用记录】访问数据库之JPA

1 创建项目

选择Spring Web

选择Spring Data JPA,Spring Data JDBC, MySQL Driver

2 修改配置

server:
  port: 8086

spring:
  datasource:
    driverClassName: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/springboot?useSSL=false&useUnicode=true&characterEncoding=utf8
    username: root
    password: 123456

  jpa:
    hibernate:
      ddl-auto: update
    show-sql: true

3 编写数据表对应的实体类(点击跳转sql转java类工具)

例子:

CREATE TABLE `t_user` (
  `id` bigint(20) unsigned NOT NULL,
  `create_by` varchar(255) DEFAULT NULL,
  `create_time` datetime DEFAULT NULL,
  `update_by` varchar(255) DEFAULT NULL,
  `update_time` datetime DEFAULT NULL,
  `address` varchar(255) DEFAULT NULL,
  `avatar` varchar(255) DEFAULT NULL,
  `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
  `email` varchar(255) DEFAULT NULL,
  `mobile` varchar(255) DEFAULT NULL,
  `nickname` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
  `password` varchar(255) DEFAULT NULL,
  `sex` varchar(255) DEFAULT NULL,
  `status` int(11) DEFAULT NULL,
  `type` int(11) DEFAULT NULL,
  `username` varchar(255) DEFAULT NULL,
  `del_flag` tinyint(1) DEFAULT NULL,
  `department_id` bigint(20) unsigned DEFAULT NULL,
  `street` varchar(255) DEFAULT NULL,
  `pass_strength` varchar(2) DEFAULT NULL,
  `department_title` varchar(255) DEFAULT NULL,
  `birth` datetime(6) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `username` (`username`) USING BTREE,
  UNIQUE KEY `email` (`email`) USING BTREE,
  UNIQUE KEY `mobile` (`mobile`) USING BTREE,
  KEY `create_time` (`create_time`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

实例类entity/User

package com.gauzz.lession7.entity;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

import javax.persistence.*;

/**
 * Auto-generated: 2020-11-07 10:55:46
 *
 * @author bejson.com (i@bejson.com)
 * @website http://www.bejson.com/java2pojo/
 */
@JsonIgnoreProperties(value = {"hibernateLazyInitializer"}) //必须加上,否则json遇到空的转换错误
@Entity
@Table(name = "t_user")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY) //主键自增
    private String id;
    @Column
    private String create_by;
    @Column
    private String create_time;
    @Column
    private String update_by;
    @Column
    private String update_time;
    @Column
    private String address;
    @Column
    private String avatar;
    @Column
    private String description;
    @Column
    private String email;
    @Column
    private String mobile;
    @Column
    private String nickname;
    @Column
    private String password;
    @Column
    private String sex;
    @Column
    private String status;
    @Column
    private String type;
    @Column
    private String username;
    @Column
    private String del_flag;
    @Column
    private String department_id;
    @Column
    private String street;
    @Column
    private String pass_strength;
    @Column
    private String department_title;
    @Column
    private String birth;

    public void setId(String id) {
        this.id = id;
    }
    public String getId() {
        return id;
    }

    public void setCreate_by(String create_by) {
        this.create_by = create_by;
    }
    public String getCreate_by() {
        return create_by;
    }

    public void setCreate_time(String create_time) {
        this.create_time = create_time;
    }
    public String getCreate_time() {
        return create_time;
    }

    public void setUpdate_by(String update_by) {
        this.update_by = update_by;
    }
    public String getUpdate_by() {
        return update_by;
    }

    public void setUpdate_time(String update_time) {
        this.update_time = update_time;
    }
    public String getUpdate_time() {
        return update_time;
    }

    public void setAddress(String address) {
        this.address = address;
    }
    public String getAddress() {
        return address;
    }

    public void setAvatar(String avatar) {
        this.avatar = avatar;
    }
    public String getAvatar() {
        return avatar;
    }

    public void setDescription(String description) {
        this.description = description;
    }
    public String getDescription() {
        return description;
    }

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

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }
    public String getMobile() {
        return mobile;
    }

    public void setNickname(String nickname) {
        this.nickname = nickname;
    }
    public String getNickname() {
        return nickname;
    }

    public void setPassword(String password) {
        this.password = password;
    }
    public String getPassword() {
        return password;
    }

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

    public void setStatus(String status) {
        this.status = status;
    }
    public String getStatus() {
        return status;
    }

    public void setType(String type) {
        this.type = type;
    }
    public String getType() {
        return type;
    }

    public void setUsername(String username) {
        this.username = username;
    }
    public String getUsername() {
        return username;
    }

    public void setDel_flag(String del_flag) {
        this.del_flag = del_flag;
    }
    public String getDel_flag() {
        return del_flag;
    }

    public void setDepartment_id(String department_id) {
        this.department_id = department_id;
    }
    public String getDepartment_id() {
        return department_id;
    }

    public void setStreet(String street) {
        this.street = street;
    }
    public String getStreet() {
        return street;
    }

    public void setPass_strength(String pass_strength) {
        this.pass_strength = pass_strength;
    }
    public String getPass_strength() {
        return pass_strength;
    }

    public void setDepartment_title(String department_title) {
        this.department_title = department_title;
    }
    public String getDepartment_title() {
        return department_title;
    }

    public void setBirth(String birth) {
        this.birth = birth;
    }
    public String getBirth() {
        return birth;
    }


}

编写Dao数据接口类

package com.gauzz.lession7.respository;

import com.gauzz.lession7.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;

public interface UserRepository extends JpaRepository<User,Integer> {
}

编写Controller类

package com.gauzz.lession7.controller;

import com.gauzz.lession7.entity.User;
import com.gauzz.lession7.respository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.ResponseBody;


@Controller
public class UserController {
    @Autowired
    JdbcTemplate jdbcTemplate;

    @Autowired
    UserRepository userRepository;

    @ResponseBody
    @GetMapping("/user/{id}")
    public User address(@PathVariable("id") Integer id){
        User user =   userRepository.getOne(id);
        return  user;
    }

    @ResponseBody
    @PostMapping("/user")
    public User addAddress(User user){
        User u =   userRepository.save(user);
        return  u;
    }

}

4 测试

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值