带你搭一个SpringBoot+SpringData JPA的环境

前言

只有光头才能变强。java

文本已收录至个人GitHub仓库,欢迎Star:github.com/ZhongFuChen…mysql

不知道你们对SpringBoot和Spring Data JPA了解多少,若是你已经学过Spring和Hibernate的话,那么SpringBoot和SpringData JPA能够分分钟上手的。SpringBoot和SpringData JPA的好处我就不说了,当时我学习的时候也粗略作过笔记,有兴趣的同窗能够去看看git

其实我在学完SpringBoot和SpringData JPA了以后,写过一个小Demo,但一直没发出来而已(懒)。最近要写毕业设计的一个管理模块(CRUD),而且我又没写过相关SpringBoot和SpringData JPA的搭建教程,因此就诞生了这篇文章了。github

1、从零搭建环境

本次我使用的是IDEA编辑器来搭建SpringBoot和Spring Data JPA环境web

首先,咱们在IDEA新建项目的时候,选择Spring Initializr,而后next就好了。spring

选择Spring Initializr

而后填写一些项目的资料(其实这些资料也可有可无,本身看着填就行了),随后点击nextsql

填写一些项目的资料

随后在勾选的时候,我就随手勾选了个LomBok(其余的没勾选,反正后面咱们能够在pom文件下配置嘛)。能够看出,本次SpringBoot的版本为2.1.3数据库

  • :若是不太了解LomBok的同窗,建议去搜一下。这是一个很是好用的插件,有了它咱们能够不用写繁琐的set/get方法。记得:使用lomBok还须要在IDEA下安装插件

勾选了个LomBok

而后IDEA就会帮咱们建立出Maven管理下SpringBoot的项目啦,此时通常咱们会指定本身的下载好的Maven,重写它的settings.xml文件json

配置maven

而后Maven就一直在下载相关的依赖啊,必要的插件啊(我等了差很少10分钟吧,这个时间能够去倒杯Java喝喝.haha),等Maven下载完以后,咱们的项目就成了下面那个样子了(:原生的是application.properties文件的,我改了一下后缀,我比较喜欢yml格式的):浏览器

已是一个SpringBoot项目了

2、完善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文件的完整依赖图以下:

pom文件的完整依赖图

3、配置yml文件

既然咱们用到了SpringData JPA和MySQL,咱们得为其进行配置最基础的信息。好比说数据库的用户名和密码,相对应的库,以及SpringData JAP的策略。

#服务端容器的配置
server:
 port: 8887


#数据库配置
spring:
 datasource:
 username: 填写本身的
 password: 填写本身的
 driver-class-name: com.mysql.cj.jdbc.Driver
 url: jdbc:mysql://填写本身的机器:3306/填写本身的库?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
    # JPA配置
 jpa:
 hibernate:
 ddl-auto: update
 show-sql: true

    # formatSQL得这样写
 properties:
 hibernate:
 format_sql: true
复制代码

yml文件完整图以下:

yml文件完整图

数据库的信息填写成本身的就好了。

4、写一个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实体图以下:

User实体图

5、写一个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图以下:

UserRepository图

ok,咱们的UserRepository已经写好了,至于为啥咱们传入<User, String>,点进去看一下就明白了:

T表示为咱们实体的类型,ID表示为咱们主键的类型

6、写一个UserService

咱们就查user表全部的记录出来就行了,代码以下:

// 接口
public interface UserService {

    List<User> getAllUser();
}

// 实现
@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserRepository userRepository;

    @Override
    public List<User> getAllUser() {
        return userRepository.findAll();
    }
}
复制代码

UserService图以下:

UserService图

为啥会有findAll()方法?由于咱们的UserRepository 继承了JpaRepository

7、写一个UserController

UserController调用一下service的方法,看是否能返回成功,若是能返回成功,那说明咱们的环境已是ok的了。

UserController代码以下:

@RestController
public class UserController {

    @Autowired
    private 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代码图以下:

Controller代码图

8、测试一下看是否能返回数据

进入DemoApplication,右键,启动咱们的SpringBoot项目:

启动SpringBoot项目

在浏览器输入咱们的url:http://localhost:8887/user。而后咱们从后台查看,打印出查询的SQL语句,已经后台已经打印表已有的记录。

打印出查询的SQL语句和已有的记录

最后

咱们能够发现使用SpringBoot+SpringData JPA的方式,不须要不少的配置,不须要不少的代码就能够从数据库中查找出数据了。很是适合咱们作一些简答的测试和小功能。若是对例子有疑问的同窗应该是对SpringData JPA不太熟悉,建议去找找相关的教程看一下,相信你能够很快就入门了。

乐于输出干货的Java技术公众号:Java3y。公众号内有200多篇原创技术文章、海量视频资源、精美脑图,不妨来关注一下!

帅的人都关注了

以为个人文章写得不错,不妨点一下

相关文章
相关标签/搜索