springDataJPA实战

从个人开发角度来说,Spring Data JPA更好用,是因为开发起来更快。

但从团队角度,我们希望更好的维护性,spring data jpa就差一些,或者说对后期人的要求更高。mybatis更好一些

1.创建module

2.添加数据源, 新建 jpa 数据库

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


   #jpa相关配置
  jpa:
    hibernate:
      #会根据映射实体类自动创建或更新数据表
      ddl-auto: update
    #控制台打印sql语句
    show-sql: true

3.创建实体类 entity/User

package com.cc.springboot.entity;

import javax.persistence.*;

//jpa采用的是orm(对象关系映射)模型
@Entity //他是数据库中表映射的类
@Table(name="tab1_user")   //指定映射的表明,省略不写默认表明是类同user
public class User {
    @Id //指定主键
    @GeneratedValue(strategy= GenerationType.IDENTITY)  //id自增
    private Integer id;

    @Column(name="user_name",length=5) //与数据表对应的一个字段
    private String username;

    @Column  //省略不写默认字段名就是属性名
    private String password;

    public Integer getId() {
        return id;
    }

    public void setId(Integer 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;
    }
}

知识点:1 .@Entity //他是数据库中表映射的类

               2. @Table(name="tab1_user") //指定映射的表明,省略不写默认表明是类同user

               3.@Id //指定主键

                  @GeneratedValue(strategy= GenerationType.IDENTITY) //id自增

                  @Column(name="user_name",length=5) //与数据表对应的一个字段

                  @Column //省略不写默认字段名就是属性名

               4. setter和getter不要忘记

 4.创建接口 dao/Repository

package com.cc.springboot.dao;

import com.cc.springboot.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;
//自定义接口继承JpaRepository,就会有增删改查操作且分页排序 等功能

//指定的泛型<操作的实体类,主键的数据类型>
public interface Repository extends JpaRepository<User, Integer> {
}

  知识点:1. 自定义接口继承JpaRepository,就会有增删改查操作且分页排序 等功能

                 2. 指定的泛型<操作的实体类,主键的数据类型>

5.创建controller测试

package com.cc.springboot.controller;

import com.cc.springboot.dao.Repository;
import com.cc.springboot.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

import java.util.Optional;

@RestController
public class UserController {
    @Autowired
    Repository repository;


//    通过id获取用户
    @GetMapping("/user/{id}")
    public User getUserById(@PathVariable("id") Integer id){
        Optional<User> userOptional = repository.findById(id);
        User user = userOptional.get();
        return user;
    }

//    新增用户
@GetMapping("/user")
    public User addUser(User user){
        User user1 = repository.save(user);
        return user1;
    }
}

 知识点:1.@Autowired  //注入接口

    测试:添加----  http://localhost:8080/user?password=6&&username=9

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值