spring boot 尚桂谷学习笔记11 数据访问03 JPA
整合JPA



SpringData 程序数据交互结构图 (springdata jpa 默认使用 hibernate 进行封装)
使用之后就关注于 SpringData 不用再花多经历关注具体各个交互框架实现


JPA:ORM 关系型数据
1.新建项目 使用springboot 快速构建工具 模块选择 web, sql模块 选择 jdbc, mysql, jpa
创建项目pom文件为:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency> <dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
2)编写一个实体类(bean) 和数据表进行映射 并且配置好映射的关系
package com.lixuchun.springboot.entity; import javax.persistence.*; // 使用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;
get set ......
3)编写一个Dao接口来操作试题对应的数据表,对yml文件进行jpa配置(参照JpaProperties 配置类进行配置)
package com.lixuchun.springboot.repository; import com.lixuchun.springboot.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository; // 集成 jpaRepository 来完成数据库的操作
@Repository
public interface UserRepository extends JpaRepository<User, Integer> {
}
spring:
datasource:
url: jdbc:mysql://192.168.10.129/jpa
username: root
password: 101022li
driver-class-name: com.mysql.jdbc.Driver
jpa:
hibernate:
# 更新或者创建数据表
ddl-auto: update
show-sql: true
4)编写一个 测试 Controller
package com.lixuchun.springboot.controller; import com.lixuchun.springboot.entity.User;
import com.lixuchun.springboot.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 getUserById(@PathVariable("id") Integer id) {
User user = userRepository.findOne(id);
return user;
} @GetMapping("/user")
public User insertUser(User user) {
User save = userRepository.save(user);
return save;
} }
浏览器进行测试:
localhost:8080/user?lastName=jack&email=aa 进行数据插入
localhost:8080/user/1 进行id查询

https://www.bilibili.com/video/av23478787/?p=68 TODO
spring boot 尚桂谷学习笔记11 数据访问03 JPA的更多相关文章
- spring boot 尚桂谷学习笔记10 数据访问02 mybatis
数据访问 mybatis 创建一个 springboot 工程,模块选择 sql 中 mysql(数据驱动), jdbc(自动配置数据源), mybatis Web模块中选择 web pom 引入: ...
- spring boot 尚桂谷学习笔记09 数据访问
springboot 与数据库访问 jdbc, mybatis, spring data jpa, 1.jdbc原生访问 新建项目 使用 springboot 快速构建工具 选中 web 组件 sq ...
- spring boot 尚桂谷学习笔记07 嵌入式容器 ---Web
------配置嵌入式servlet容器------ springboot 默认使用的是嵌入的Servlet(tomcat)容器 问题? 1)如何定制修改Servlet容器的相关配置: 1.修改和se ...
- spring boot 尚桂谷学习笔记04 ---Web开始
------web开发------ 1.创建spring boot 应用 选中我们需要的模块 2.spring boot 已经默认将这些场景配置好了 @EnableAutoConfiguration ...
- spring boot 尚桂谷学习笔记08 Docker ---Web
------Docker------ 简介:Docker是一个开元的应用容器引擎,性能非常高 已经安装好的软件打包成一个镜像放到服务器中运行镜像 MySQL容器,Redis容器...... Docke ...
- spring boot 尚桂谷学习笔记05 ---Web
------web 开发登录功能------ 修改login.html文件:注意加粗部分为 msg 字符串不为空时候 才进行显示 <!DOCTYPE html> <!-- saved ...
- spring boot 尚桂谷学习笔记06 异常处理 ---Web
------错误处理机制------ 默认效果 1 返回一个默认的错误页面 浏览器发送请求的请求头:优先接收 text/html 数据 客户端则默认响应json数据 : accept 没有说明返回什么 ...
- springboot 尚桂谷学习笔记03
------spring boot 与日志------ 日志框架: 市面上的日志框架: jul jcl jboss-logging logback log4j log4j2 ...... 左边一个门面 ...
- Spring Boot 揭秘与实战(二) 数据存储篇 - JPA整合
文章目录 1. 环境依赖 2. 数据源 3. 脚本初始化 4. JPA 整合方案一 通过继承 JpaRepository 接口 4.1. 实体对象 4.2. DAO相关 4.3. Service相关 ...
随机推荐
- centos下Linux C语言MD5的使用
在Linux C变成中用到MD5加密会使用到openssl库,下面给出的是一个简单的小Demo: #include <stdio.h> #include <openssl/md5.h ...
- php上传文件如何保证上传文件不被改变或者乱码
很多网站上传文件都截取文件后缀,前面用时间错加后缀组成,然而一下下载的网站并不需要这样,需要保持原来的文件名,这里讲述一下 //上传操作 function uploadify(){ //var_dum ...
- tornado后台小框架
import tornado.ioloop import tornado.web """使用get方法提交过来数据就是用get方法,使用post执行post方法这个框架的 ...
- NGUI的拖拽和放下功能的制作,简易背包系统功能(drag and drop item)
一我们添加sprite,给sprite添加背景图片和添加box collider,但是drag and drop item在attach中是找不到的只能在add component中查找添加,如下图: ...
- 09-python的面向对象
# 1. 面向对象概述(ObjectOriented,OO) - OOP思想 - 接触到任意一个任务,首先想到的是任务这个世界的构成,是由模型构成的 - 几个名词 - OO:面向对象 - OOA:面向 ...
- 【JAVA】 04-Java中的多线程
链接: 笔记目录:毕向东Java基础视频教程-笔记 GitHub库:JavaBXD33 目录: <> <> 内容待整理: 多线程引入 概述 多线程: 进程:正在执行中的程序,其 ...
- how to use epoll with python
1 import socket, select 2 3 EOL1 = b'\n\n' 4 EOL2 = b'\n\r\n' 5 response = b'HTTP/1.0 200 OK\r\nDate ...
- 3.Web中使用iReport 整合----------创建PDF格式的
转自:https://wenku.baidu.com/view/104156f9770bf78a65295462.html 1.
- elasticsearch 基础 —— Mapping参数boost、coerce、copy_to、doc_values、dynamic、
boost 在查询时,各个字段可以自动提升 - 更多地依赖于相关性得分,boost参数如下: PUT my_index { "mappings": { "_doc&quo ...
- lvm相关
LVM 概念:PV(单个硬件)--VG(组合)--LV(分区) pv打头的:代表pv相关的命令vg带头的:代表vg相关的命令lv带头的: 代表lv相关的命令 create:创建相关remove:移除相 ...