【SpringBoot】SpringBoot 与JPA整合(十四)

  本章介绍SpringBoot与JPA整合

整合流程

  1、新建一个SpringBoot Web项目

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <project xmlns="http://maven.apache.org/POM/4.0.0"
 3          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 5     <modelVersion>4.0.0</modelVersion>
 6
 7     <groupId>com.test</groupId>
 8     <artifactId>test-springboot-jpa</artifactId>
 9     <version>1.0-SNAPSHOT</version>
10
11
12     <parent>
13         <groupId>org.springframework.boot</groupId>
14         <artifactId>spring-boot-starter-parent</artifactId>
15         <version>2.1.8.RELEASE</version>
16     </parent>
17
18     <properties>
19
20         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
21         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
22         <java.version>1.8</java.version>
23     </properties>
24
25     <dependencies>
26
27         <dependency>
28             <groupId>org.springframework.boot</groupId>
29             <artifactId>spring-boot-starter-web</artifactId>
30         </dependency>
31
32
33         <dependency>
34             <groupId>org.springframework.boot</groupId>
35             <artifactId>spring-boot-starter-data-jpa</artifactId>
36         </dependency>
37
38         <dependency>
39             <groupId>org.springframework.boot</groupId>
40             <artifactId>spring-boot-starter-jdbc</artifactId>
41         </dependency>
42
43         <!-- mysql -->
44         <dependency>
45             <groupId>mysql</groupId>
46             <artifactId>mysql-connector-java</artifactId>
47             <version>8.0.12</version>
48         </dependency>
49
50         <dependency>
51             <groupId>org.springframework.boot</groupId>
52             <artifactId>spring-boot-starter-test</artifactId>
53             <scope>test</scope>
54         </dependency>
55
56     </dependencies>
57
58
59     <!-- SpringBoot打包插件,可以将代码打包成一个可执行的jar包 -->
60     <build>
61         <plugins>
62             <plugin>
63                 <groupId>org.springframework.boot</groupId>
64                 <artifactId>spring-boot-maven-plugin</artifactId>
65             </plugin>
66         </plugins>
67     </build>
68 </project>

  2、引入JPA依赖和JDBC依赖

1 <dependency>
2     <groupId>org.springframework.boot</groupId>
3     <artifactId>spring-boot-starter-data-jpa</artifactId>
4 </dependency>
5
6 <dependency>
7     <groupId>org.springframework.boot</groupId>
8     <artifactId>spring-boot-starter-jdbc</artifactId>
9 </dependency>

  3、添加配置信息

 1 spring:
 2   datasource:
 3     username: admin
 4     password: 123456
 5     url: jdbc:mysql://127.0.0.1:3306/test_jpa 6     driver-class-name: com.mysql.jdbc.Driver
 7   jpa:
 8     # 底层通过hibernate来实现的
 9     hibernate:
10       # 更新或者创建数据表结构
11       ddl-auto: update
12       # 控制台显示SQL
13     show-sql: true

  4、编写一个User实体类

 1 package com.test.springboot.entity;
 2
 3 import org.springframework.context.annotation.Configuration;
 4
 5 import javax.persistence.*;
 6
 7 // 使用JAP注解配置映射关系
 8
 9 // 告诉JPA这是一个实体类(和数据表映射的类)
10 @Entity
11 // @Table来指定和那个数据表对应;如果省略默认表名就是user;
12 @Table(name="jpa_user")
13 public class User {
14
15     // 这是一个主键
16     @Id
17     @GeneratedValue(strategy =  GenerationType.IDENTITY)
18     private Integer id;
19
20     @Column(name = "last_name", length = 50)
21     private String lastName;
22
23     // 省略默认列名就是属性名
24     @Column
25     private String email;
26
27     public Integer getId() {
28         return id;
29     }
30
31     public void setId(Integer id) {
32         this.id = id;
33     }
34
35     public String getLastName() {
36         return lastName;
37     }
38
39     public void setLastName(String lastName) {
40         this.lastName = lastName;
41     }
42
43     public String getEmail() {
44         return email;
45     }
46
47     public void setEmail(String email) {
48         this.email = email;
49     }
50 }

  5、编写一个UserRepository类

package com.test.springboot.repository;

import com.test.springboot.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;

public interface UserRepository extends JpaRepository<User, Integer> {

}

  6、编写一个UserController类

 1 package com.test.springboot.controller;
 2
 3 import com.test.springboot.entity.User;
 4 import com.test.springboot.repository.UserRepository;
 5 import org.springframework.beans.factory.annotation.Autowired;
 6 import org.springframework.web.bind.annotation.GetMapping;
 7 import org.springframework.web.bind.annotation.PathVariable;
 8 import org.springframework.web.bind.annotation.RestController;
 9
10 import java.util.Optional;
11
12 @RestController
13 public class UserController {
14
15     @Autowired
16     UserRepository userRepository;
17
18     @GetMapping("/user/{id}")
19     public User getUser(@PathVariable("id") Integer id) {
20         Optional<User> optional = userRepository.findById(id);
21         if(optional.isPresent()) {
22             return optional.get();
23         }
24         return null;
25     }
26
27
28     @GetMapping("/user")
29     public User insertUser(User user){
30         User user1 = userRepository.save(user);
31         return user1;
32     }
33 }

  7、启动SpringBoot Web项目进行测试,查看启动日志,可以看到它自动生成了表

    

   浏览器输入地址http://localhost:8080/user?lastName=%E6%9D%8E%E5%9B%9B&[email protected],新增用户

    

   查看用户,输入地址:http://localhost:8080/user/1

    

原文地址:https://www.cnblogs.com/h--d/p/12423920.html

时间: 2024-07-30 20:03:47

【SpringBoot】SpringBoot 与JPA整合(十四)的相关文章

Springboot 2.0.4 整合Mybatis出现异常Property &#39;sqlSessionFactory&#39; or &#39;sqlSessionTemplate&#39; are required

在使用Springboot 2.0.4 整合Mybatis的时候出现异常Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required,然后各种找日志百度,网上给了一种解决方法: 版本太高,使用手动注入sqlSessionFactory,然后用dao的实习类继承,因为我的项目没有dao 的实现类,直接是interface+mapper文件,所以直接忽略了,没有试过,想试一下可以试一下 阅读博客点这里(随手百度的):这里是传送门

SpringBoot与PageHelper的整合示例详解

SpringBoot与PageHelper的整合示例详解 1.PageHelper简介 PageHelper官网地址: https://pagehelper.github.io/ 摘要: com.github.pagehelper.PageHelper是一款好用的开源免费的Mybatis第三方物理分页插件. PageHelper是一款好用的开源免费的Mybatis第三方物理分页插件,其实我并不想加上好用两个字,但是为了表扬插件作者开源免费的崇高精神,我毫不犹豫的加上了好用一词作为赞美. 原本以为

SpringBoot+SpringMVC+MyBatis快速整合搭建

使用过SpringBoot的同学都知道,SpringBoot的pom.xml中的坐标都是按功能导入的,jar包之间的依赖SpringBoot底层已经帮我们做好了,例如我们要整合SprngMVC,只需要导入SpringMVC的起步依赖就可以了,SpringBoot会帮我们导入Spring和SpringMVC整合需要的jar包. SpringBoot是基于Spring4.0设计的,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程.另外Sp

SpringBoot系列教程web篇Listener四种注册姿势

java web三要素Filter, Servlet前面分别进行了介绍,接下来我们看一下Listener的相关知识点,本篇博文主要内容为SpringBoot环境下,如何自定义Listener并注册到spring容器 I. 环境配置 1. 项目搭建 首先我们需要搭建一个web工程,以方便后续的servelt注册的实例演示,可以通过spring boot官网创建工程,也可以建立一个maven工程,在pom.xml中如下配置 <parent> <groupId>org.springfra

解决Springboot项目中jpa扫描不到实体的问题

在一些情况下Springboot项目中jpa扫描不到实体.比如默认扫描不到引用的其他项目中定义的实体.导致无法自动创建表. 解决方法,在Application中自定义实体扫描的包 @EntityScan(basePackages = {"com.aaa"}) @SpringBootApplication @EnableDiscoveryClient @ComponentScan(basePackages = {"com.aaa.*"}) @EntityScan(ba

SSM(十四) 基于annotation的http防重插件

SSM(十四) 基于annotation的http防重插件 前言 针对于我们现在常用的RESTful API通常我们需要对请求进行唯一标识,也就是每次都要带上一个请求号,如reqNO. 对于入库这种操作数据库的请求我们一般要保证他的唯一性,一个请求号通常只能用一次,所以需要我们对这种请求加上校验机制. 该需求的实现思路是通过自定义annotation,只给需要进行校验的接口加上注解.然后通过切面使用了注解的接口将每次请求号存进Redis,每次都进行判断是否存在这个请求号即可. 来看下加上本次插件

Kendo UI常用示例汇总(十四)

Kendo UI Professional 提供开源和商业两个版本.开源版 Kendo UI Core,有40+个框架和组件:商业版整合了之前的Kendo UI Web.Kendo UI Mobile 和 Kendo UI DataViz ,一共有70+个框架和组件.作为Kendo UI的升级版,Kendo UI Professional既可以开发网页版应用程序,也可以开发移动版应用程序,并且在性能上也有显著的优化和提升. Kendo UI Professional试用版下载猛戳>> Kend

无废话ExtJs 入门教程十四[文本编辑器:Editor]

无废话ExtJs 入门教程十四[文本编辑器:Editor] extjs技术交流,欢迎加群(201926085) ExtJs自带的编辑器没有图片上传的功能,大部分时候能够满足我们的需要. 但有时候这个功能还是需要的.我在这里对keeditor进行了整合. 首先要下载keeditor和上传时需要引用的LitJson.dll.由于ke的版本不同,我这里提供的下载文件只适用于当前整合代码,供参考. 1.代码如下: 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML

【转】花开正当时,十四款120/128GB SSD横向评测

原文地址:http://www.expreview.com/19604-all.html SSD横评是最具消费指导意义的评测文章,也是各类热门SSD固态硬盘的决斗疆场.SSD评测在行业内已经有不少网站做过,超能网也从今年开始专注SSD固态硬盘重点产品的评测.随着40nm和25nm新制程的NAND颗粒的 量产,SSD固态硬盘在今年迎来了价格大幅度下降,特别是国内120GB和128GB的SSD固态硬盘价格已经达到非常合理的区间,因此需要阅读SSD评测特别是SSD横评来指导消费的用户,也在呈现爆发式增