【springBoot】 springBoot2.x整合jpa

前言:

上篇博客用SpringBoot集成了mybatis,Mybatis的重心关注的是数据库表,而jpa关注的是实体,本篇博客从0进行整合jpa

1、pom文件
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.2.2.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-jpa</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<scope>runtime</scope>
		</dependency>
</dependencies>

2、 yml 文件
server:
  port: 8084
spring:
  datasource:
    username: root
    password: Audit@666
    url: jdbc:mysql://152.136.203.163:3306/jdbc?useUnicode=true&characterEncoding=UTF-8  #防止插入的数据乱码
  jpa:
    hibernate:
      #更新或者创建数据表结构
      ddl-auto: update
# 控制台显示SQL
    show-sql: true
# 指定使用innoDB数据引擎
    database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
3、创建实体
// 使用JPA注解配置映射关系
@Entity //告诉jpa这是一个实体类
@Table(name="user") //@Table来指定和哪个数据表对应,如果省略默认表明就和类名相同
public class User {
    // 主键自增长
    @Id
    @GeneratedValue
    private Integer id;

    // 和数据表对应的列
    @Column(name="last_name",length = 50)
    private String lastName;

    @Column  // 省略默认列明就是属性名
    private String email;

    private Integer sex;
# getter和setter省略

在启动springBoot程序后,会在数据库中建立一个user表
在这里插入图片描述

4、创建user类的实例化接口UserRepository
// 继承JpaRepository来完成对数据的操作
public interface UserRepository extends JpaRepository<User,Integer> {

}

这里进行下补充,有些人用JpaRepository,也有很多人用CrudRepository,其实都可以,只不过CrudRepository进行基本的增删改查,但是PagingAndSortingRepository 提供分页和排序方法;JpaRepository继承了PagingAndSortingRepository 如下图:
在这里插入图片描述

5、controller 用rest风格实现增删改查
  @Autowired
    private UserRepository userRepository;
    @GetMapping("/user/{id}")
    public User getUser(@PathVariable("id") Integer id){
        User user = userRepository.findById(id).get();
        return user;
    }

    @PostMapping("/user")
    public User insertUser(@RequestBody  User user){
        User save =userRepository.save(user);
        return save;
    }

    @PutMapping("/user")
    public User update(@RequestBody User user){
        User update = userRepository.save(user);
        return update;
    }

    @DeleteMapping("user/{id}")
    public void delete(@PathVariable Integer id){
        userRepository.deleteById(id);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值