什么是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. GAN实战笔记——第五章训练与普遍挑战:为成功而GAN

    训练与普遍挑战:为成功而GAN 一.评估 回顾一下第1章中伪造达・芬奇画作的类比.假设一个伪造者(生成器)正在试图模仿达・芬奇,想使这幅伪造的画被展览接收.伪造者要与艺术评论家(判别器)竞争,后者试图 ...

  2. 【windows 操作系统】进程控制块(PCB)

    转载地址:https://blog.csdn.net/qq_38499859/article/details/80057427一.目录文章目录    操作系统3 ----进程控制块(PCB)详解    ...

  3. Map格式-joson格式

    mapStr: {CHAR=UTF-8, DATA=eyJNRVJDSEFOVCI6IjEwMDEiLCJWRVJTSU9OIjoiMS4wLjAiLCJUUkFERSI6IjIwMTgwNjEyMT ...

  4. Lua中如何实现类似gdb的断点调试--01最小实现

    说到Lua代码调试,最常用的方法应该就是加一堆print进行打印.print大法虽好,但其缺点也是显而易见的.比如效率低下,需要修改原有函数内部代码,在每个需要的地方添加print语句,运行一次只能获 ...

  5. WIN10:IE浏览器的默认主页以及通过链接搜索的默认引擎

    主页设置: 地址栏搜索引擎:

  6. Python:pandas(一)——常用、读写函数read_csv、read_excel、to_csv、to_excel

    学习自:pandas1.2.1documentation 0.常用 1)读写 ①从不同文本文件中读取数据的函数,都是read_xxx的形式:写函数则是to_xxx: ②对前n行感兴趣,或者用于检查读进 ...

  7. vue实时显示当前时间且转化为“yyyy-MM-dd hh:mm:ss”格式

    在实际运用中时间格式"yyyy-MM-dd hh:mm:ss"用的最多,如果需要其他格式可根据需求自行修改,下面直接上代码: 引入相应的js即可运行 <!DOCTYPE ht ...

  8. 面向对象编程(C++篇2)——构造

    目录 1. 引述 2. 详述 2.1. 数据类型初始化 2.2. 类初始化 1. 引述 在C++中,学习类的第一课往往就是构造函数.根据构造函数的定义,构造函数式是用于初始化类对象的数据成员的.无论何 ...

  9. Azure KeyVault(四)另类在 .NET Core 上操作 Secrets 的类库方法-----Azure.Security.KeyVault.Secrets

    一,引言 上一篇文章我们在 .Net Core Web 项目中添加了 "Microsoft.Azure.KeyVault" 的 Nuget 包操作 Azure KeyVault 的 ...

  10. 网络标准之:永远是1.0版本的MIME

    目录 简介 MIME详解 MIME头 MIME-Version Content-Type Content-Disposition Content-Transfer-Encoding Encoded-W ...