Позвольте вам создать среду SpringBoot + SpringData JPA.

Java

предисловие

Только лысая голова может стать сильнее.

Текст был включен в мой репозиторий GitHub, добро пожаловать, звезда:GitHub.com/Zhongf UC очень…

Я не знаю, как много вы знаете о SpringBoot и Spring Data JPA.Если вы изучили Spring и Hibernate, то SpringBoot и SpringData JPA можно использовать за считанные минуты. Я не буду рассказывать о преимуществах SpringBoot и SpringData JPA, когда изучалгрубыйЯ сделал заметки, и заинтересованные студенты могут пойти и посмотреть

На самом деле, изучив SpringBoot и SpringData JPA, я написал небольшое демо, но не выложил (лень).а такжеНедавно я собираюсь написать модуль управления (CRUD) для своего дипломного проекта, и я еще не писал о SpringBoot и SpringData JPA.строитьучебник, поэтому эта статья родилась.

1. Создайте среду с нуля

На этот раз я использовалIDEAРедактор для настройки среды SpringBoot и Spring Data JPA

Прежде всего, когда мы создаем новый проект в IDEA, выбираем Spring Initializr, затем далее.

选择Spring Initializr

Затем заполните некоторую информацию о проекте (на самом деле эта информация не имеет значения, просто посмотрите сами), а затем нажмите «Далее».

填写一些项目的资料

Затем, когда я проверил, я быУдобныйПроверил LomBok (другие не проверяются, в любом случае мы можем настроить его в файле pom позже). Видно, что версия SpringBoot на этот раз2.1.3.

  • Примечание: Если вы мало что знаете об одноклассниках ЛомБока, рекомендуется поискать. Этоотлично сработалоПлагин, с ним нам не нужно писать громоздкие методы установки/получения.Запомнить: Для использования ломБок также необходимо установить плагины под IDEA

勾选了个LomBok

Затем IDEA поможет нам создать проект SpringBoot под управлением Maven, в это время мы обычно указываем свой собственныйскачатьMaven, перепишите его файл settings.xml

配置maven

Потом Maven скачивает сопутствующие зависимости и нужные плагины (ждал минут 10, могу в это время чашку Java налить и попить. Ха-ха), после скачивания Maven наш проект становится таким Вот и всё (Примечание: Оригинал - файл application.properties, я изменил суффикс, предпочитаю формат yml):

已经是一个SpringBoot项目了

Во-вторых, улучшите файл pom

Теперь файл pom имеет только зависимости SpringBoot и LomBok.Чтобы завершить функцию CURD, нам нужно использовать веб-модуль Spring, зависимости драйвера 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文件的完整依赖图

В-третьих, настройте файл 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文件完整图

Просто заполните информацию в базе данных как свою собственную.

В-четвертых, напишите сущность пользователя

Мой выпускной проект включает в себя управление пользователями.Наш дизайн пользовательской сущности выглядит следующим образом (конечно, у всех может отличаться от моего, я просто пример):

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 и подключаемый модуль LomBok установлен в IDEA, нам не нужно писать методы set и get.

Диаграмма сущности пользователя выглядит следующим образом:

User实体图

5. Напишите пользовательский репозиторий

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图

хорошо, наш UserRepository был написан, почему мы передали<User, String>, нажмите на нее и вы поймете:

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

Шесть, напишите UserService

Мы просто проверяем все записи в пользовательской таблице, код такой:


// 接口
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

Семь, напишите UserController

UserController вызывает сервисный метод, чтобы узнать, может ли он вернуть успех.Если он может вернуть успех, это означает, что наша среда в порядке.

Код 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代码图

Восемь, проверьте, можно ли вернуть данные

Войдите в DemoApplication, щелкните правой кнопкой мыши и запустите наш проект SpringBoot:

启动SpringBoot项目

Введите наш адрес в браузере:http://localhost:8887/user. Затем мы просматриваем его в фоновом режиме, распечатываем оператор SQL запроса, и таблица печатается в фоновом режиме.имеютзапись о.

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

Наконец

Мы можем обнаружить, что способ использования SpringBoot + SpringData JPA не требует большой настройки и не требует большого количества кода для поиска данных из базы данных. Нам очень удобно проводить тесты с краткими ответами и небольшие функции. Если у вас есть вопросы по примерам, вы должны быть незнакомы со SpringData JPA. Рекомендуется поискать соответствующие руководства. Я думаю, вы скоро сможете приступить к работе.

рад вывестигалантерейные товарыОбщедоступный номер технологии Java: Java3y. В паблике более 200 статейоригинальныйТехнические статьи, обширные видеоресурсы, красивые карты мозга — идите сюдаобрати внимание наодин раз!

帅的人都关注了

Я думаю, что моя статья хорошо написана, пожалуйста, нажмитеотличный!