-->

从无到有Springboot整合Spring-data-jpa实现简单应用

2020-08-15 21:36发布

本文介绍Springboot整合Spring-data-jpa实现简单应用

Spring-data-jpa是什么?这不由得我们思考一番,其实通俗来说Spring-data-jpa默认使用hibernate,使用Spring-data-jpa这样的技术,它实现了模板Dao层,只需要在Dao,通过继承一个接口,就可轻松完成“增删改查,所以本质就是springboot和hibernate的整合,已经有了hibernate为什么还要Spring-data-jpa!!!其实开发jpa和开发hibernate的居然是同一个作者...emmmm...

话不多说开始实施!

一、创建Springboot项目添加相关依赖:(大家可以参考我这篇文章创建Springboot项目哦!)

https://www.cnblogs.com/bgyb/p/12070279.html

      <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>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--MySQL依赖-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
      <!--  spring-data-jpa依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>

 二、配置application.yml进行配置:(注意层级关系,按住Ctrl键,移动到属性上面鼠标键变为小手形状则为正确)

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/easybuy?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
    driver-class-name: com.mysql.jdbc.Driver
    username: root
    password: root
  jpa:
    hibernate:
      ddl-auto: update  #启动应用,自动的去数据库帮我们创建表
    show-sql: true #显示sql

三、创建实体类(entity)、数据接口(mapper)、拦截器(controller)

实体类(entity):

import org.springframework.boot.autoconfigure.domain.EntityScan;

import javax.persistence.*;

//使用JPA注解配置映射关系
@Entity //告诉JPA这是一个实体类(和数据表映射的类)
@Table(name="user") //@Table来指定和哪个数据表对应;如果省略默认表名就是user
public class User {
    @Id //表示主键
    @GeneratedValue(strategy = GenerationType.IDENTITY) //设置主键
    private Integer id;

    @Column(name = "u_name") //这是和数据表对应的一个列,如果注解中name不指定,表中列名默认和属性名一样
    private String name;

    @Column(name = "u_email")
    private String email;

    public Integer getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

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

    public String getEmail() {
        return email;
    }

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

数据接口(mapper):

import com.poje.myspringjpa.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;

//继承JpaRepository来完成对数据库的操作,指定javabean类型,其javabean主键属性类型
public interface UserMapper extends JpaRepository<User,Integer> {

    //方法体内可自定义方法进行操作
    
}

拦截器(controller):

import com.poje.myspringjpa.entity.User;
import com.poje.myspringjpa.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;

@Controller
public class UserController {
    @Autowired
    UserMapper userMapper; //注入mapper层

    //根据id查询,查询单个
    @RequestMapping("/hello/{id}")
    @ResponseBody
    public User hello(@PathVariable("id") Integer id){
       // User user = userMapper.findOne(id); Spring Boot2.0.0以上本版本,把findOne(id)改成findById(id).get()
        User user = userMapper.findById(id).get(); //jpa自带查询方法
        return  user;
    }

    //查询全部
    @RequestMapping("/findAll")
    @ResponseBody
    public List<User> findAll(){
        List<User> list =userMapper.findAll();//jpa自带查询方法
        return  list;
    }

}

四、完成以上配置后即可启动Springboot项目:

从控制台我们可以看出Spring-data-jpa帮我们执行了创建表语句,我们可以去数据库查看一番。。。

 如图所示数据库表已经创建成功:

 我们创建几条数据到表中,接着去打开浏览器,输入url:http://localhost:8080/hello/2,可以看到结果和控制台的sql语句。

 

 

 浏览器端效果如下:

 

 

 

至此Springboot整合jpa实现简单创表及查询已经都实现了,实现了的小伙伴都非常奈斯!(晚上给自己加个鸡腿)

本人寄语:写博客希望记录当下,学习是永无止境的!努力成为IT界中的清流!

 

标签: