DAO面向SpringData操作

Spring Data 项目的目的是为了简化构建基于 Spring 框架应用的数据访问技术,

包括非关系数据库、Map-Reduce 框架、云数据服务等等;

另外也包含对关系数据库的访问支持。

Spring Data 包含多个子项目:

– Spring Data Commons

– Spring Data JPA

– Spring Data KeyValue

– Spring Data LDAP

– Spring Data MongoDB

– Spring Data Gemfire

– Spring Data REST

– Spring Data Redis

– Spring Data for Apache Cassandra

– Spring Data for Apache Solr

– Spring Data Couchbase (community module)

– Spring Data Elasticsearch (community module)

– Spring Data Neo4j (community module)

- 持久操作支持

- 大量的封装模板

- 各种对象映射

1、SpringData特点

SpringData为我们提供使用统一的API来对数据访问层进行操作;

这主要是Spring DataCommons项目来实现的。

Spring Data Commons让我们在使用关系型或者非关系型数据访问技术时都基于Spring提供的统一标准,

标准包含了CRUD(创建、获取、更新、删除)、查询、排序和分页的相关操作。

2、统一的Repository接口

统一接口:

Repository<T, ID extends Serializable>

基于乐观锁机制:

RevisionRepository<T, ID extends Serializable, N extends Number & Comparable<N>>

基本CRUD操作:

CrudRepository<T, ID extends Serializable>

基本CRUD及分页

PagingAndSortingRepository<T, ID extends Serializable>

3、提供数据访问模板类 xxxTemplate;

如:MongoTemplate、RedisTemplate等

4、JPA与Spring Data

1)、JpaRepository基本功能

  编写接口继承JpaRepository既有crud及分页等基本功能

2)、定义符合规范的方法命名

  在接口中只需要声明符合规范的方法,即拥有对应的功能

3)、@Query自定义查询,定制查询SQL

4)、Specifications查询(Spring Data JPA支持JPA2.0的Criteria查询)

持久层结构示意图:


整合JPA【Java持久化API】

操作步骤:

1、引入spring-boot-starter-data-jpa

2、配置文件打印SQL语句

3、创建Entity标注JPA注解

4、创建Repository接口继承JpaRepository

5、测试方法

导入依赖组件

SpringDataJPA是对JPA规范的再封装,所以用SpringDataJPA学习JPA是一样的

配置访问参数

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql:///mybatis?serveTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=123456

编写对应的JPA规范实体类

package cn.dai.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor; import javax.persistence.*; /**
* @author ArkD42
* @file SpringBoot with JPA
* @create 2020 - 06 - 01 - 15:35
*/
@Entity
@Table
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User { @Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column
private Integer user_id; @Column
private String user_name; @Column
private String user_password;
}

编写Dao接口

【SpringData只要这个接口继承了Jpa持久化接口,并且注入了ORM实体类和主键类型,就可以了】

package cn.dai.repo;

import cn.dai.entity.User;

import org.springframework.data.jpa.repository.JpaRepository;

/**
* @author ArkD42
* @file SpringBoot with JPA
* @create 2020 - 06 - 01 - 15:43
*/
public interface UserRepository extends JpaRepository<User,Integer> { }

然后配置其他非主要设置

#JPA配置
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true

测试类

被害惨了,getOne方法不行,findOne方法没有,

还是弹幕说的findById().get()才起效的

package cn.dai.controller;

import cn.dai.entity.User;
import cn.dai.repo.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; /**
* @author ArkD42
* @file SpringBoot with JPA
* @create 2020 - 06 - 01 - 16:06
*/
@RestController
public class UserController { @Autowired
UserRepository userRepository; @GetMapping("/user/get_user_by_id/{user_id}")
public User getUser(@PathVariable("user_id") Integer id){
return userRepository.findById(id).get(); // 老版本是findOne
} @GetMapping("/user/add_user")
public User saveUser(User user){
return userRepository.save(user); //打印一下保存的User
} }

【SpringBoot】16 数据访问P4 整合JPA的更多相关文章

  1. java框架之SpringBoot(9)-数据访问及整合MyBatis

    简介 对于数据访问层,无论是 SQL 还是 NOSQL,SpringBoot 默认采用整合 SpringData 的方式进行统一处理,添加了大量的自动配置,引入了各种 Template.Reposit ...

  2. SpringBoot数据访问之整合mybatis注解版

    SpringBoot数据访问之整合mybatis注解版 mybatis注解版: 贴心链接:Github 在网页下方,找到快速开始文档 上述链接方便读者查找. 通过快速开始文档,搭建环境: 创建数据库: ...

  3. 六、SpringBoot与数据访问

    六.SpringBoot与数据访问 1.JDBC spring: datasource: username: root password: 123456 url: jdbc:mysql://192.1 ...

  4. SpringBoot之数据访问和事务-专题三

    SpringBoot之数据访问和事务-专题三 四.数据访问 4.1.springboot整合使用JdbcTemplate 4.1.1 pom文件引入 <parent> <groupI ...

  5. SpringBoot的数据访问

    一.JDBC方式 引入starter. <dependency> <groupId>org.springframework.boot</groupId> <a ...

  6. SpringBoot 之数据访问

    1. Spring Boot 与 JDBC 默认使用 org.apache.tomcat.jdbc.pool.DataSource 数据源; // application.yml spring: da ...

  7. SpringBoot(九) -- SpringBoot与数据访问

    一.简介 对于数据访问层,无论是SQL还是NOSQL,Spring Boot默认采用整合Spring Data的方式进行统一处理,添加大量自动配置,屏蔽了很多设置.引入各种xxxTemplate,xx ...

  8. 20、Springboot 与数据访问(JDBC/自动配置)

    简介: 对于数据访问层,无论是SQL还是NOSQL,Spring Boot默认采用整合 Spring Data的方式进行统一处理,添加大量自动配置,屏蔽了很多设置.引入 各种xxxTemplate,x ...

  9. 10分钟进阶SpringBoot - 05. 数据访问之JDBC(附加源码分析+代码下载)

    10分钟进阶SpringBoot - 05. 数据访问之JDBC 代码下载:https://github.com/Jackson0714/study-spring-boot.git 一.JDBC是什么 ...

  10. Spring Boot数据访问之整合Mybatis

    在Mybatis整合Spring - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中谈到了Spring和Mybatis整合需要整合的点在哪些方面,需要将Mybatis中数据库连接池等相关对 ...

随机推荐

  1. react 利用高阶组件给页面加上动画

    利用高阶组件给页面加上动画 并不想让所有的路由都有动画效果,只是想对指定的页面有路由切换效果,可以利用高阶组件来完成. # 定义高阶组件 import React, { Component } fro ...

  2. [SWPUCTF 2021 新生赛]include

    打开我们可以看到让我们传入一个file,会出现一串代码,我们去分析一下: 当看到ini_set("allow_url_include","on");设置为on, ...

  3. 增补博客 第六篇 python 电子算盘

    珠算测试器 题目描述]设计一个珠算测试器,要求能够完成珠算加减法的测试.具体的要求功能如下:(1)用户启动测试,输入用户名后系统随机生成特定数目的加减法测试题:(2) 要求测试使用表盘式或数字时秒表进 ...

  4. github fork后对上游仓库的做rebase

    想对上游仓库做更新同步 先添加上游仓库 git remote add upstream https://github.com/原始作者/原始仓库.git 其中这里的upstream 是一个命名,和 o ...

  5. mongodb数据库连接格式

    mongodb数据库连接格式 mongodb://账号:密码@mongodb服务器IP:27017/数据库名称

  6. CSS3随机背景图片切换特效

    Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解` CSS3随机背景图片切换特效 日期:2018-5-16 阿 ...

  7. MinIO 图片转文件的分界线RELEASE.2022-05-26T05-48-41Z

    前言:本人想用MinIO存储文件,但是不想最新版本Mete文件,于是各种寻找于是终于找到办法了,原来是官方版本更新导致的.需要我们去寻找相应的版本. 1.官网下载网站 https://dl.min.i ...

  8. golang模拟键盘输入字符串

    介绍 仅供学习使用哈,不要用来开gua. 代码仓库:https://github.com/GuoFlight/gkeybd (本人仓库,欢迎留言) 注意事项 只支持英文 使用前请切换到英文输入法.因为 ...

  9. Coap 协议学习:具体协议介绍具体

    协议框架 CoAP默认运行在UDP上,但它也支持运行在SMS,TCP等数据传输层上.本文主要是基于UDP上的CoAP协议介绍 1.消息模型 Messages COAP协议通信是通过在UDP上传输消息类 ...

  10. 如何查看docker容器的volume挂载情况

    准备在docker容器当中编写个日常维护的脚本,但容器里连yum和vim命令都没有,所以就想到通过容器映射在本机的volume里编写脚本这样在容器中不就可以直接用了吗,那么在这之前你首先得知道dock ...