[JAVA] Botte de printemps + Heroku Postgres

J'ai eu du mal avec les détails, alors je vais l'écrire comme une note pour moi-même.

On suppose que Heroku Postgres a été ajouté à l'application Heroku. 2018-08-05_11h48_15.png

Spring Boot est 2.0.4.

Installez la commande psql sur votre machine locale

En regardant les paramètres de Heroku Potgres (figure ci-dessus), il est dit "** Heroku CLI **" et la commande suivante est écrite.

heroku pg:nom de la banque de données psql--app Nom de l'application

J'ai eu une erreur lorsque je l'ai essayé dans mon environnement. Vous devez mettre ** psql ** sur votre machine locale. C'est naturel w

-->Connexion au nom de la banque de données
 !    The local psql command could not be located. For help installing psql, see
 !    https://devcenter.heroku.com/articles/heroku-postgresql#local-setup

Reportez-vous à URL ci-dessus et accédez à votre environnement Windows 10 [Installation de Windows](https://devcenter.heroku.com/ Je l'ai installé avec les articles / heroku-postgresql # set-up-postgres-on-windows). Ensuite, j'ai défini la variable d'environnement sur "C: \ Program Files \ PostgreSQL \ \ bin".

heroku pg:nom de la banque de données psql--app Nom de l'application
-->Connexion au nom de la banque de données
psql (10.4)
Connexion SSL(protocole: TLSv1.2, méthode de cryptage: ECDHE-RSA-AES256-GCM-SHA384, longueur en bits:256, compression:de)
"help"Obtenez de l'aide avec.

nom de l'application::DATABASE=>

Vous vous êtes connecté avec succès.

commander

C'est une partie qui n'a rien à voir avec Spring Boot ou Heroku, mais j'ai fait une note car je ne connaissais pas trop la commande Postgres.

Affichage de la liste des bases de données

\l

Quand j'ai fait cela, beaucoup de bases de données sont sorties, mais je peux voir les bases de données des autres propriétaires ...? Est-ce multi-locataire?

Sélection de la base de données

\c nom de la base de données
Connexion SSL(protocole: TLSv1.2, méthode de cryptage: ECDHE-RSA-AES256-GCM-SHA384, longueur en bits:256, compression:de)
Base de données"xxxx"À l'utilisateur"xxxx"Connecté en tant que.

Affichage de la liste des tableaux

Après avoir créé une table avec create table, affichez la table.

\d
Liste des relations
Schéma|Nom|Moule|propriétaire
----------+----------+----------+----------------
 public   | nogizaka |table| xxxxxxxxxxxxx

Affichage détaillé du tableau

Voir les détails tels que les colonnes.

\d nogizaka

Le schéma est une super omission.

table"public.nogizaka"
Colonne|Moule|Collation|Autoriser la valeur Null|Défaut
------+-----------------------+----------+---------------+------------
 id   | integer               |          |               |
 name | character varying(64) |          |               |

Spring Boot

Spring Initializr

Créez un modèle pour votre projet avec Spring Initializr. J'ai choisi les trois dépendances suivantes. Vous n'êtes pas obligé d'avoir un site Web, mais je l'ai inclus pour faire du point de terminaison d'exécution une API REST.

2018-08-06_18h58_47.png

application.properties

Le contenu de la connexion à la base de données a été défini et exploité comme suit en fonction des informations d'identification de la base de données dans les paramètres de Heroku Postgres.

spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://nom d'hôte:numéro de port/Nom de la base de données?sslmode=require
spring.datasource.username=Nom d'utilisateur
spring.datasource.password=mot de passe

Quand je suis devenu accro, les deux points suivants ont été divulgués.

--L'URL "postgresql" a été remplacée par "postgres" (j'ai copié l'URL écrite dans la CLI Heroku) --Je n'ai pas ajouté le paramètre sslmode

code

Tout ce que vous avez à faire est d'écrire.

Entity

Nogizaka.java


package tech.kikutaro.herokupostgres;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="nogizaka")
public class Nogizaka {
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private long id;

    @Column(name="name")
    private String name;

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

Il peut être préférable d'utiliser Lombok pour le setter et le getter.

Repository

NogizakaRepository.java


package tech.kikutaro.herokupostgres;

import org.springframework.data.jpa.repository.JpaRepository;

public interface NogizakaRepository extends JpaRepository<Nogizaka, Long> {

}

Service

NogizakaService.java


package tech.kikutaro.herokupostgres;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class NogizakaService {
    @Autowired
    NogizakaRepository nogirepo;

    public long count() {
        return nogirepo.count();
    }

    public Nogizaka getMember(long id) {
        return nogirepo.getOne(id);
    }
}

Pour le moment, comptez et obtenez.

Main

HerokupostgresApplication.java


package tech.kikutaro.herokupostgres;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class HerokupostgresApplication {

	@Autowired
	private NogizakaService nogiService;

	public static void main(String[] args) {
		SpringApplication.run(HerokupostgresApplication.class, args);
	}

	@GetMapping("/count")
	public String count() {
		System.out.println(nogiService.count());
		return Long.toString(nogiService.count());
	}

	@GetMapping("/select/{id}")
	public String getName(@PathVariable("id") long id) {
		return nogiService.getMember(id).getName();
	}
}

Résultat d'exécution

Cela a fonctionné en toute sécurité.

http://localhost:8080/nogizaka/1

2018-08-09_23h07_44.png

http://localhost:8080/select/1

2018-08-10_00h00_18.png

Recommended Posts

Botte de printemps + Heroku Postgres
Défi Spring Boot
Forme de botte de printemps
Spring Boot Rappelez-vous
gae + botte à ressort
Rédaction de mémo de démarrage de printemps (1)
Première botte à ressort (DI)
Fiche d'apprentissage SPRING BOOT 02
Aide-mémoire Spring Boot2
Gestion des exceptions Spring Boot
Mappage du servlet Spring Boot
Environnement de développement-développement Spring Boot-
Procédure d'apprentissage Spring Boot
Apprentissage de Spring Boot [Début]
Rédaction de mémos de démarrage de printemps (2)
Résumé du document Spring Boot 2.2
[Spring Boot] DataSourceProperties $ DataSourceBeanCreationException
Disponibilité de l'application Spring Boot 2.3
Tutoriels Spring Boot Sujets
Télécharger avec Spring Boot
Spring Boot (série 1) + spring-security-oauth2 + Redis Session + Heroku avec SerializationException
[Spring Boot] Construction de l'environnement (macOS)
Définir le paramètre contextuel dans Spring Boot
Essayez Spring Boot de 0 à 100.
Générer un code à barres avec Spring Boot
Spring Boot sur Microsoft Azure
Implémenter GraphQL avec Spring Boot
Calendrier des tâches du didacticiel Spring Boot
Spring 5 et Spring Boot 2 Procédure de préparation pratique
Démarrez avec Spring Boot
Bonjour tout le monde avec Spring Boot!
Multi-projets Spring Boot 2 avec Gradle
[Spring Boot] Création d'applications Web
Exécutez LIFF avec Spring Boot
Connexion SNS avec Spring Boot
Paramètres d'échange à chaud Spring Boot
[Java] Thymeleaf Basic (Spring Boot)
Introduction à Spring Boot ① ~ DI ~
Téléchargement de fichiers avec Spring Boot
Spring Boot commençant par copie
Introduction à Spring Boot ② ~ AOP ~
Application Java CICS-Run - (4) Application Spring Boot
Spring Boot à partir de Docker
Spring Boot + Springfox springfox-boot-starter 3.0.0 Utilisation
Conseils relatifs à Spring Boot DB
Hello World avec Spring Boot
Définir des cookies avec Spring Boot
[Spring Boot] Recette de processus de pagination facile
Utiliser Spring JDBC avec Spring Boot
Construction de l'environnement Docker × Spring Boot
Changements majeurs dans Spring Boot 1.5
Ajouter un module avec Spring Boot
Premiers pas avec Spring Boot
NoHttpResponseException dans Spring Boot + WireMock
[Spring Boot] Envoyer un e-mail
Paramètres liés aux performances de Spring Boot
Introduction à Spring Boot, partie 1
Priorité de réglage externe Spring Boot
Essayez d'utiliser Spring Boot Security
[Java] [Spring] Spring Boot 1.4-> 1.2 Note de rétrogradation