整合 JPA|学习笔记

简介: 快速学习整合 JPA

开发者学堂课程【SpringBoot快速掌握 - 核心技术整合JPA】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/612/detail/9279


整合JPA


一、前期准备

创建一个新工程并命为 project,spring 初始化向导,选择  Spring Boot  版本为1.5.10,并使用  web 模块, SQL 中选择 JPA 模块、JDBC 模块,导入了最基本的  jdbc  功能。

配置数据源

引入

spring:

datasource :

ur1: jdbc:mysql ://192.168.15.22/jpa

username: root

password: 123456

driver- class-name: com. mysql . jdbc.Driven


二、整合 SpringData JPA

SpringData 特点

SpringData 为我们提供使用统一的 API  来对数据访问层进行操作;这主要是  Spring Data Commons  项目来实现的。Spring Data Commons 让我们在使用关系型或者非关系型数据访问,技术时都基于Spring提供的统一标准,标准包含了CRUD(创建、获取、更新、删除)、查询、

排序和分页的相关操作。

JPA:ORM(Object Relational Mapping);

1)、编写一个实体类(bean)和数据表进行映射,并且配置好映射关系;//使用 JPA  注解配置映射关系@Entity //告诉 JPA  这是一个实体类(和数据表映射的类)@Table(name ="tbl_user")//

@Table 来指定和哪个数据表对应;如果省略默认表名就是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;

2)、编写一个 Dao 接口来操作实体类对应的数据表(Repository )
//继承 JpaRepository来完成对数据库的操作public interface UserRepository extends JpaRepository{

统一的Repository接口

Repository :统一接口

RevisionRepository> :基于乐观锁机制

CrudRepository :

基本CRUD操作

PagingAndSortingRepository :基本CRUD及分页
3)、基本的配置JpaProperties
spring:jpa:hibernate:
更新或者创建数据表结构
ddl-auto: update
控制台显示sql
show-sql: true

增删改查

@RestController

public class UserController {

@Autowired

UserRepository userRepository;

@GetMapping( "/user/{id}")

public User getUser(@PathVariable("id") Integer id){

User user = userRepository. find0ne(id);

return user;

}

@GetMapping("/user")

public User insertUser(User user) {

User save = userRepository. save(user);

return save ;

}

}

启动之后 

输入网址 localhost:8080/user/1 返回为空值

插入一个数据

localhost:8080/user?lastName=zhangsan&emall=aa

结果:

Id: 1

lastName “zhangsha”,

emall: “aa”

localhost:8080/user?lastName=lisi&emall=aa

结果:

Id: 2

lastName “lisi”,

emall: “aa”

相关文章
|
人工智能 安全
学习笔记7
人工智能课程
87 0
|
开发者
需要、欲望、需求 | 学习笔记
快速学习需要、欲望、需求。
231 0
需要、欲望、需求 | 学习笔记
|
消息中间件 SQL 负载均衡
总结|学习笔记
快速学习总结
106 0
总结|学习笔记
|
自然语言处理 流计算 开发者
termQuery | 学习笔记
快速学习 termQuery
|
Java 开发工具 C++
notepad++ 介绍|学习笔记
快速学习 notepad++ 介绍
notepad++ 介绍|学习笔记
|
Java 开发者 Python
Self 的介绍 | 学习笔记
快速学习 Self 的介绍
Self 的介绍 | 学习笔记
|
机器学习/深度学习 算法 数据挖掘
总结与回顾 | 学习笔记
快速学习总结与回顾
|
机器学习/深度学习 算法 开发者
总结与回顾| 学习笔记
快速学习总结与回顾。
|
安全 Java 大数据
回顾 | 学习笔记
快速学习回顾,介绍了回顾系统机制, 以及在实际应用过程中如何使用