ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

SpringBoot(十) -- Spring Data

2019-12-18 21:54:04  阅读:156  来源: 互联网

标签:SpringBoot Spring springframework public email org import Data id


一.Spring Data简介
  Spring Data 项目的目的是为了简化构建基于 Spring 框架应用的数据访问技术,包括非关系数据库、Map-Reduce 框架、云数据服务等等;另外也包含对关系数据库的访问支持。

二.Spring Data特点
  1.SpringData为我们提供使用统一的API来对数据访问层进行操作;这主要是Spring Data Commons项目来实现的。Spring Data Commons让我们在使用关系型或者非关系型数据访问技术时都基于Spring提供的统一标准,标准包含了CRUD(创建、获取、更新、删除)、查询、排序和分页的相关操作。
  2.统一接口:
  Repository<T, ID extends Serializable>:统一接口
  RevisionRepository<T, ID extends Serializable, N extends Number & Comparable<N>>:基于乐观锁机制
  CrudRepository<T, ID extends Serializable>:基本CRUD操作
  PagingAndSortingRepository<T, ID extends Serializable>:基本CRUD及分页;
  3.提供数据访问模板类 xxxTemplate:如:MongoTemplate、RedisTemplate等;

三.SpringData JPA
  JPA即表示Java Persistence API(java持久化API);
  1.POM引入JPA模块:

 1     <dependencies>
 2         <dependency>
 3             <groupId>org.springframework.boot</groupId>
 4             <artifactId>spring-boot-starter-data-jpa</artifactId>
 5         </dependency>
 6         <dependency>
 7             <groupId>org.springframework.boot</groupId>
 8             <artifactId>spring-boot-starter-jdbc</artifactId>
 9         </dependency>
10         <dependency>
11             <groupId>org.springframework.boot</groupId>
12             <artifactId>spring-boot-starter-web</artifactId>
13         </dependency>
14 
15         <dependency>
16             <groupId>mysql</groupId>
17             <artifactId>mysql-connector-java</artifactId>
18             <scope>runtime</scope>
19         </dependency>
20         <dependency>
21             <groupId>org.springframework.boot</groupId>
22             <artifactId>spring-boot-starter-test</artifactId>
23             <scope>test</scope>
24         </dependency>
25         <dependency>
26             <groupId>junit</groupId>
27             <artifactId>junit</artifactId>
28             <scope>test</scope>
29         </dependency>
30     </dependencies>

  2.配置数据源信息;
  3.JPA-ORM(Object Relational Mapping) 对象关系映射:
  (1)编写一个实体类和数据表进行映射,并且配置表映射关系:

 1 package com.skykuqi.springboot.datajpa.entity;
 2 
 3 import javax.persistence.*;
 4 
 5 /**
 6  * @author : S K Y
 7  * @version :0.0.1
 8  */
 9 //使用JPA注解配置映射关系
10 @Entity     //告诉JPA这是一个实体类,和数据表映射的类
11 @Table(name = "tbl_user")   //来指定和哪个数据表对应,如果省略,默认表名就是user
12 public class User {
13     @Id         //标注这是一个主键
14     @GeneratedValue(strategy = GenerationType.IDENTITY)     //表示这个一个自增组件
15     private Integer id;
16 
17     @Column(name = "last_name")     //这是和数据表对应的一个列
18     private String lastName;
19     @Column     //省略列名就是email即属性名
20     private String email;
21 
22     public Integer getId() {
23         return id;
24     }
25 
26     public void setId(Integer id) {
27         this.id = id;
28     }
29 
30     public String getLastName() {
31         return lastName;
32     }
33 
34     public void setLastName(String lastName) {
35         this.lastName = lastName;
36     }
37 
38     public String getEmail() {
39         return email;
40     }
41 
42     public void setEmail(String email) {
43         this.email = email;
44     }
45 
46     @Override
47     public String toString() {
48         return "User{" +
49                 "id=" + id +
50                 ", lastName='" + lastName + '\'' +
51                 ", email='" + email + '\'' +
52                 '}';
53     }
54 }

  (2).编写一个Dao接口操作实体类对应的数据表:SpringData具有统一的RepRepository接口:

 1 package com.skykuqi.springboot.datajpa.repository;
 2 
 3 import com.skykuqi.springboot.datajpa.entity.User;
 4 import org.springframework.data.jpa.repository.JpaRepository;
 5 
 6 /**
 7  * @author : S K Y
 8  * @version :0.0.1
 9  */
10 //操作数据表
11 //继承JpaRepository来实现对数据库的操作
12 //其泛型表示<当前操作的实体类,主键的类型>
13 public interface UserRepository extends JpaRepository<User, Integer> {
14 
15 }

  (3)在配置文件中配置相关的属性:

  (4)编写Controller:

 1 package com.skykuqi.springboot.datajpa.conroller;
 2 
 3 import com.skykuqi.springboot.datajpa.entity.User;
 4 import com.skykuqi.springboot.datajpa.repository.UserRepository;
 5 import org.springframework.beans.factory.annotation.Autowired;
 6 import org.springframework.web.bind.annotation.GetMapping;
 7 import org.springframework.web.bind.annotation.PathVariable;
 8 import org.springframework.web.bind.annotation.RestController;
 9 
10 /**
11  * @author : S K Y
12  * @version :0.0.1
13  */
14 @RestController
15 public class UserController {
16     @Autowired
17     UserRepository userRepository;
18 
19     @GetMapping("/user/{id}")
20     public User queryUserById(@PathVariable("id") Integer id) {
21         return userRepository.findOne(id);
22     }
23 
24     @GetMapping("/user")
25     public User insertUser(User user) {
26         //返回的对象中将会带有自增组件
27         return userRepository.save(user);
28     }
29 }

标签:SpringBoot,Spring,springframework,public,email,org,import,Data,id
来源: https://www.cnblogs.com/skykuqi/p/12051911.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有