带你搭一个SpringBoot+SpringData JPA的环境
前言
只有光头才能变强。
文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y
不知道大家对SpringBoot和Spring Data JPA了解多少,如果你已经学过Spring和Hibernate的话,那么SpringBoot和SpringData JPA可以分分钟上手的。SpringBoot和SpringData JPA的好处我就不说了,当时我学习的时候也粗略做过笔记,有兴趣的同学可以去看看
- SpringBoot就是这么简单
- SpringData JPA就是这么简单
其实我在学完SpringBoot和SpringData JPA了之后,写过一个小Demo,但一直没发出来而已(懒)。而最近要写毕业设计的一个管理模块(CRUD),并且我又没写过相关SpringBoot和SpringData JPA的搭建教程,所以就诞生了这篇文章了。
一、从零搭建环境
本次我使用的是IDEA编辑器来搭建SpringBoot和Spring Data JPA环境
首先,我们在IDEA新建项目的时候,选择Spring Initializr,然后next就行了。
然后填写一些项目的资料(其实这些资料也无关紧要,自己看着填就好了),随后点击next
随后在勾选的时候,我就随手勾选了个LomBok(其他的没勾选,反正后面我们可以在pom文件下配置嘛)。可以看出,本次SpringBoot的版本为2.1.3。
- 注:如果不太了解LomBok的同学,建议去搜一下。这是一个非常好用的插件,有了它我们可以不用写繁琐的set/get方法。记得:使用lomBok还需要在IDEA下安装插件
然后IDEA就会帮我们创建出Maven管理下SpringBoot的项目啦,此时一般我们会指定自己的下载好的Maven,重写它的settings.xml文件
然后Maven就一直在下载相关的依赖啊,必要的插件啊(我等了差不多10分钟吧,这个时间可以去倒杯Java喝喝.haha),等Maven下载完之后,我们的项目就成了下面那个样子了(注:原生的是application.properties文件的,我改了一下后缀,我比较喜欢yml格式的):
二、完善pom文件
现在pom文件只有SpringBoot和LomBok的依赖,想要完成CURD的功能,我们需要用到Spring Web模块、Spring Data JPA以及MySQL驱动依赖,所以我们得在pom文件下加入这些依赖:
<!--Web必要的-->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency><!--spring data jpa-->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency><!-- MySQL的java驅動 -->
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId>
</dependency>
pom文件的完整依赖图如下:
三、配置yml文件
既然我们用到了SpringData JPA和MySQL,我们得为其进行配置最基础的信息。比如说数据库的用户名和密码,相对应的库,以及SpringData JAP的策略。
#服务端容器的配置
server:port: 8887#数据库配置
spring:datasource:username: 填写自己的password: 填写自己的driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://填写自己的机器:3306/填写自己的库?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC# JPA配置jpa:hibernate:ddl-auto: updateshow-sql: true# formatSQL得这样写properties:hibernate:format_sql: true
yml文件完整图如下:
数据库的信息填写成自己的就行了。
四、写一个User实体
我毕业设计其中就有对用户的管理,我们用户实体设计如下(大家的当然可以跟我的不一样了,我这只是样例):
package com.zhongfucheng.example.demo.domain;import lombok.Data;
import org.hibernate.annotations.GenericGenerator;import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;/*** 存储用户的信息** @author ozc* @version 1.0*/
@Entity // jpa的注解,需要加
@Table(name = "table_user") // 指定数据库的表名
@Data // lombok
public class User implements Serializable {@Id@GeneratedValue(generator = "system-uuid")@GenericGenerator(name = "system-uuid", strategy = "uuid")private String userId;private String userNickname;private String userPassword;private String userEmail;private Integer actiState;//激活成功与激活失败常量public static final int ACTIVATION_SUCCESSFUL = 1;public static final int ACTIVATION_UNSUCCESSFUL = 0;private String actiCode;private Date tokenExptime;}
再补充一句:因为我们有了LomBok的Data注解,并且在IDEA已经下好的LomBok的插件,所以我们可以不用写set、get方法。
User实体图如下:
五、写一个UserRepository
UserRepository是dao层的东西了,相当于UserDao/UserMapper
,只是叫法不一样而已。比如在Struts2喜欢将名字取成xxxAction
,而在SpringMVC喜欢将名字取成xxxxController
。
一般地,我们将UserRepository继承JpaRepository就可以有对应的增删改查方法:
import com.zhongfucheng.example.demo.domain.User;
import org.springframework.data.jpa.repository.JpaRepository;/*** UserDao 操作数据库* @author ozc* @version 1.0*/
public interface UserRepository extends JpaRepository<User, String> {}
UserRepository图如下:
ok,我们的UserRepository已经写好了,至于为啥我们传入<User, String>
,点进去看一下就明白了:
六、写一个UserService
我们就查user表所有的记录出来就好了,代码如下:
// 接口
public interface UserService {List<User> getAllUser();
}// 实现
@Service
public class UserServiceImpl implements UserService {@Autowiredprivate UserRepository userRepository;@Overridepublic List<User> getAllUser() {return userRepository.findAll();}
}
UserService图如下:
为啥会有findAll()
方法?因为我们的UserRepository 继承了JpaRepository
七、写一个UserController
UserController调用一下service的方法,看是否能返回成功,如果能返回成功,那说明我们的环境已经是ok的了。
UserController代码如下:
@RestController
public class UserController {@Autowiredprivate UserService userService;/*** 得到所有用户*/@GetMapping(value = "/user", produces = {"application/json;charset=UTF-8"})public void getAllUser () {List<User> allUser = userService.getAllUser();for (User user : allUser) {System.out.println(user);}}
}
Controller代码图如下:
八、测试一下看是否能返回数据
进入DemoApplication,右键,启动我们的SpringBoot项目:
在浏览器输入我们的url:http://localhost:8887/user
。然后我们从后台查看,打印出查询的SQL语句,已经后台已经打印表已有的记录。
最后
我们可以发现使用SpringBoot+SpringData JPA的方式,不需要很多的配置,不需要很多的代码就可以从数据库中查找出数据了。非常适合我们做一些简答的测试和小功能。如果对例子有疑问的同学应该是对SpringData JPA不太熟悉,建议去找找相关的教程看一下,相信你可以很快就入门了。
乐于输出干货的Java技术公众号:Java3y。公众号内有200多篇原创技术文章、海量视频资源、精美脑图,不妨来关注一下!
觉得我的文章写得不错,不妨点一下赞!
转载于:https://www.cnblogs.com/Java3y/p/10583162.html
带你搭一个SpringBoot+SpringData JPA的环境相关推荐
- idea加入springboot插件_带你搭一个SpringBoot+SpringData JPA的环境
前言 只有光头才能变强. 不知道大家对SpringBoot和Spring Data JPA了解多少,如果你已经学过Spring和Hibernate的话,那么SpringBoot和SpringData ...
- 小程序服务器搭建前后端交互,手把手带你搭一个简单的微信小程序(包括前后端)...
开发小程序除了大家能看到的客户端,前端小程序是如何与后端服务器进行数据交互的呢? 本文将通俗易懂的讲一下.这里以nodejs为例来进行讲解 1.首先要在服务器上安装nodejs服务器: wget ...
- SpringBoot简介、SpringBoot 入门程序搭建、与JDBC、Druid、Mybatis和SpringData JPA的整合
一.SpringBoot 简介: spring boot并不是一个全新的框架,它不是spring解决方案的一个替代品,而是spring的一个封装.所以,你以前可以用spring做的事情,现在用spri ...
- SpringData JPA 之疑难杂症
SpringData JPA 之疑难杂症 1.JPA自动建表不生成外键 SpringBoot项目搭配的JPA使用时候,有一对多的关系注解,那么自动会生成外键.外键在有些时候,会导致代码不能走通,我们不 ...
- SpringData JPA条件查询、排序、分页查询
前言 在刚开始学习的时候,在dao的定义的接口需要继承JpaRepository<T, ID>接口和JpaSpecificationExecutor< T >接口,但是一直以来 ...
- 七十三、SpringBoot整合Jpa
@Author:Runsen 来源:尚硅谷 下面建议读者学习尚硅谷的B站的SpringBoot视频,我是学雷丰阳视频入门的. 具体链接如下:B站尚硅谷SpringBoot教程 这里需要注意的是:jpa ...
- Jpa第一话 -- Springboot集成Jpa和Mybatis以及Jpa的最全使用
本文主要记录spring-boot-starter-data-jpa的详细使用. 在做一些小型无并发的项目时,说实话第一个想到的就是Jpa,一个Entity走天下. 1.Spring Jpa的使用 基 ...
- 整理代码,将一些曾经用过的功能整合进一个spring-boot
一 由于本人的码云太多太乱了,于是决定一个一个的整合到一个springboot项目里面. 附上自己的项目地址https://github.com/247292980/spring-boot 功能 1. ...
- SpringBoot实现JPA的save操作
在一次参与公司的技术讨论会上,一位同事在演示SpringBoot的JPA的操作时,发现SpringBoot的JPA的save操作时,发现会先有select再insert,然后老板说,我们在网关已经 ...
最新文章
- Android文件系统深入剖析
- Dubbo 如何成为连接异构微服务体系的最佳服务开发框架
- MPB:湖南农大尹杰组-猪粪便来源乳酸菌分离技术
- 九度OJ-1042-最长公共子序列(LCS)
- 【独立游戏】黎明之刃——3D硬核ARPG游戏
- tensorflow1中如何设置GPU的使用
- 怎样从10亿查询词找出出现频率最高的10个
- ACM OJ反馈结果大全
- [转]计算机专业方面的期刊介绍
- 什么是计算机的网络体系结构,什么是网络体系结构 网络体系结构介绍【详解】...
- c语言遍历文件obt,二维电子化合物Ca2N和Y2C高压结构研究.pdf
- (转)SQL Server 数据类型映射
- NLog文章系列——入门教程(转)
- 如何 方法内指令重排 进制_宁波PLC编程培训:新手如何学习PLC?
- python 埋点 库_vue 友盟统计埋点插件
- 一切皆服务:以蓝天的角度看待云
- 美国习惯用语flip out的中英文翻译解释和例子
- 解决Could not resolve XXX
- 解决在谷歌浏览器上倍速播放视频适用B站 慕课MOOC 百度网盘(弃用) 谷歌内置播放器最高16倍速
- CC3200——管脚的细节