SpringBoot--整合SpringData JPA

1、SpringData 简介

在这里插入图片描述

2、整合SpringData JPA
  1. 导入依赖

    <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-jdbc</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>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.junit.vintage</groupId>
                        <artifactId>junit-vintage-engine</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
    
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
            </dependency>
        </dependencies>
    
  2. 连接数据库,使用 application.yml

spring:
  datasource:
    username: root
    password: 123
    #?serverTimezone=UTC解决时区的报错
    url: jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
    driver-class-name: com.mysql.cj.jdbc.Driver
  1. 编写一个实体类(bean)和数据表进行映射,并且配置好映射关系;
/**
 * @author tyh
 * @create 2020-09-11 15:13
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
//使用JPA注解配置映射关系
@Entity   //告诉JPA这是一个实体类(和数据表映射的类)
//@Table(name = "user")  //@Table来指定和那个数据表对应;如果省略默认表名就是user
public class User {

        @Id  //这是一个主键
        @GeneratedValue(strategy = GenerationType.IDENTITY) //主键自增
        private Integer id;

        @Column//(name = "user_name",length = 50) //这是和数据表对应的一个列
        private String userName;
        @Column  //默认列名就是属性名
        private String pwd;
}
  1. 编写一个Dao接口来操作实体类对应的数据表(Repository)
//继承JpaRepository来完成对数据库的操作
public interface UserRepository extends JpaRepository<User,Integer> {

}
  1. 使用application.yml 去配置JpaProperties
spring:
  datasource:
    username: root
    password: 123
    #?serverTimezone=UTC解决时区的报错
    url: jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
    driver-class-name: com.mysql.cj.jdbc.Driver

  jpa:
     hibernate:
#       更新或者创建数据表结构
       ddl-auto: update
#        控制台显示sql
     show-sql: true
  1. 编写一个controller去测试一下
/**
 * @author tyh
 * @create 2020-09-13 9:46
 */
@RestController
public class UserController {

    @Autowired
    UserRepository userRepository;

    //localhost:8080/use/1
    @GetMapping("/user/{id}")   //根据id查询数据
    public Optional<User> getUser(@PathVariable("id") Integer id){
        Optional<User> user = userRepository.findById(id);
        return user;
    }
    //localhost:8080/user?userName=张三&pwd=555
    @RequestMapping("/user")  //添加数据
    public User insertUser(User user){
        User save = userRepository.save(user);
        return save;
    }
}
  1. 效果

在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值