什么是springDate?

springData的作用;

整体简化的架构:

JPA :Java Persistence API

如果没有springData 我们需要去学每一种对应的jpa实现,

有了springData就相当于将他们的jpa实现进行了封装。我们只需要学一种规范就行

注:默认springboot使用Hibernate

查看依赖关系图:

这里只给出一部分,就是可以看出来dataJpa 默认可以实现的是hibernate
且自动引入了jdbc

配置数据源:这里直接使用mysql默认的tomcat里面的数据源,不再使用druid数据源了

spring:
datasource:
url: jdbc:mysql://192.168.1.101:3306/jpa
username: root
password: 1997
driver-class-name: com.mysql.cj.jdbc.Driver

JPA也是基于ORM思想的:ORM(Object Relational Mapping);对象关系映射

所以我们需要编写实体类和数据表进行映射

步骤

1,编写一个实体类bean,和数据表进行映射,并设置好映射关系

package com.quan.springbootjpa.entity;

import javax.persistence.*;
//使用JPA注解配置映射关系
//这个是实体类
// 告诉JPA这个是一个实体类就是和数据表映射的累
@Entity
@Table(name = "tb1_user")//指定和哪个数据表对应,如果省略表名就是user
public class User { @Id//表明这个是主键
@GeneratedValue(strategy = GenerationType.IDENTITY)//自增主键
private Integer id; @Column(name = "last_name",length = 50) //这是和数据表对应的一个列
private String lastname; @Column//省略的情况下,默认列明就是属性名
private String email; public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} public String getLastname() {
return lastname;
} public void setLastname(String lastname) {
this.lastname = lastname;
} public String getEmail() {
return email;
} public void setEmail(String email) {
this.email = email;
}
}

2编写一个dao接口来操作实体类对应的数据表(repostity)

package com.quan.springbootjpa.repository;

import com.quan.springbootjpa.entity.User;
import org.springframework.data.jpa.repository.JpaRepository; // JpaRepository<T, ID>两个泛型,一个是实体类,一个是主键
//继承 JpaRepository 来完成数据库的操作
public interface UserRepository extends JpaRepository<User,Integer> { }

3基本的配置:基本的配置可以查看Jpaproperties

spring:
datasource:
url: jdbc:mysql://192.168.1.101:3306/jpa
username: root
password: 1997
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
hibernate:
# 跟新或者创建数据表结构
ddl-auto: update
# 控制台显示SQL
show-sql: true

启动主程序:

因为我们开启了跟新或者创建数据表结构:

即使数据库里面没有这个表,jpa因为开启了ddl_auto : update,可以自动帮我们创建不存在的表

如下面的红色部分所示

4建立Controller测试一下CRUD

package com.quan.springbootjpa.controller;

import com.quan.springbootjpa.entity.User;
import com.quan.springbootjpa.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController; @RestController
public class UserController { @Autowired
UserRepository userRepository; @GetMapping("/user/{id}")
public User getUser(@PathVariable("id") Integer id){
User user = userRepository.findById(id).get();
return user;
} @GetMapping("/user")
public User insertUser(User user){
User save = userRepository.save(user);
return save;
} }

查询

插入语句:加入对应的累的属性参数即可

命令行可以看到执行的SQL语句

springboot-数据库访问之jpa的更多相关文章

  1. SpringBoot数据库访问(一)--------关系型数据库访问(RDBMS)

    关系型数据库访问(RDBMS) 采用JdbcTemplate.MyBatis.JPA.Hibernate等技术. 一.JdbcTemplate工具 在pom.xml添加boot-starter-jdb ...

  2. SpringBoot:4.SpringBoot整合Mybatis实现数据库访问

    在公司项目开发中,使用Mybatis居多.在 SpringBoot:3.SpringBoot使用Spring-data-jpa实现数据库访问 中,这种jpa风格的把sql语句和java代码放到一起,总 ...

  3. SpringBoot入门 (四) 数据库访问之JdbcTemplate

    本文记录在SpringBoot中使用JdbcTemplate访问数据库. 一 JDBC回顾 最早是在上学时接触的使用JDBC访问数据库,主要有以下几个步骤: 1 加载驱动 Class.forName( ...

  4. springBoot数据库jpa+对接mybatis

    1  spring Data jpa hibernate引领数据访问技术,使用orm对象关系映射来进行数据库访问,通过模型和数据库进行映射,通过操作对象实现对数据库操作,把数据库相关操作从代码中独立出 ...

  5. Springboot数据访问,棒棒哒!

    Springboot对数据访问部分提供了非常强大的集成,支持mysql,oracle等传统数据库的同时,也支持Redis,MongoDB等非关系型数据库,极大的简化了DAO的代码,尤其是Spring ...

  6. spring-boot (三) spring data jpa

    学习文章来自:http://www.ityouknow.com/spring-boot.html spring data jpa介绍 首先了解JPA是什么? JPA(Java Persistence ...

  7. springboot 数据访问【转】【补】

    六.SpringBoot与数据访问 1.JDBC pom.xml配置 <dependencies> <dependency> <groupId>org.spring ...

  8. spring--boot数据库增删改查

    spring--boot数据库增删改查 数据库配置:(必须配置),我写的文件是yml的,和properties是相同的 1 spring: 2 datasource: 3 driver-class-n ...

  9. 三种数据库访问——Spring3.2 + Hibernate4.2

    前三篇随笔中介绍了 用原生的JDBC访问数据库.一种高效的数据库连接池druid.用Spring的JDBC框架访问数据库. 本文继续介绍第三种数据库访问的解决方案:Spring3.2 + Hibern ...

  10. SpringBoot数据访问(一) SpringBoot整合Mybatis

    前言 SpringData是Spring提供的一个用于简化数据库访问.支持云服务的开源框架.它是一个伞形项目,包含了大量关系型数据库及非关系型数据库的数据访问解决方案,其设计目的是为了使我们可以快速且 ...

随机推荐

  1. CVE-2020-0796

    CVE-2020-0796 SMBv3漏洞复现 0X00漏洞简介 Microsoft Windows和Microsoft Windows Server都是美国微软(Microsoft)公司的产品,Mi ...

  2. 【C# 线程】IOCP IO完成端口-Windows系统下常见的7种I/O模型

    一.IOCP(I/O Completion Ports)简介        要实现异步通信,必须要用到一个很风骚的I/O数据结构 ,叫重叠结构"Overlapped",Window ...

  3. HMS Core挑战赛故事:鞋、街景、手办、玩具,原来这些都可以3D建模

    HMS Core线上Codelabs挑战赛第3期中,开发者通过学习和运用HMS Core开发的3D建模服务,生成3D建模应用demo,再使用demo为自己身边的一个实物完成建模.在提交的作品中,小编发 ...

  4. [源码解析] NVIDIA HugeCTR,GPU 版本参数服务器---(8) ---Distributed Hash之后向传播

    [源码解析] NVIDIA HugeCTR,GPU 版本参数服务器---(8) ---Distributed Hash之后向传播 目录 [源码解析] NVIDIA HugeCTR,GPU 版本参数服务 ...

  5. 【C#版本】微信公众号模板消息对接(一)(图文详解)

    特此说明:本篇文章为个人原创文章,创作不易,未经作者本人同意.许可等条件,不得以任何形式搬运.转载.抄袭(等包括但不限于此手段)本文章,否则保留追究有关侵权人责任的权利 一.认识微信公众号模板消息 什 ...

  6. Mac下的平铺式桌面 - Yabai

    Mac下的平铺式桌面 - Yabai 近来无事,凑着周末休息的时间,想折腾一下 Mac.很久之前就有朋友给我推荐过一款名为"Yabai"的平铺式桌面管理软件,今天,就折腾起来了. ...

  7. 爬虫之标签查找补充及selenium模块的安装及使用与案例

    今日内容概要 bs模块之标签查找 过滤器 selenium模块 今日内容详细 html_doc = """ <html> <head> <t ...

  8. ASP.NET Core框架探索(一)

    今天我们来结合源码来探究一下ASP.NET CORE Web框架的运行原理. 可以先整体看一下下面这张基于源码分析过程的一个总结大纲,包含各环节完成的关键步骤: 下面我们将一起来结合源码探索启动一个A ...

  9. 理解并手写 bind() 函数

    有了对call().apply()的前提分析,相信bind()我们也可以手到擒来. 参考前两篇:'对call()函数的分析' 和 '对apply()函数的分析',我们可以先得到以下代码: Functi ...

  10. Clickhouse中的预聚合引擎

    作者: LemonNan 原文地址: https://mp.weixin.qq.com/s/qXlmGTr4C1NjodXeM4V9pA 注: 转载需注明作者及原文地址 介绍 本文将介绍 Clickh ...